// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: crashlytics.proto

package com.google.firebase.crashlytics.device.session;

@SuppressWarnings("PMD")
public final class Crashlytics {
  private Crashlytics() {}

  public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry) {}

  public enum Architecture implements com.google.protobuf.ProtocolMessageEnum {
    X86_32(0, 0),
    X86_64(1, 1),
    ARM_UNKNOWN(2, 2),
    PPC(3, 3),
    PPC64(4, 4),
    ARMV6(5, 5),
    ARMV7(6, 6),
    UNKNOWN(7, 7),
    ARMV7S(8, 8),
    ARM64(9, 9),
    ;

    public static final int X86_32_VALUE = 0;
    public static final int X86_64_VALUE = 1;
    public static final int ARM_UNKNOWN_VALUE = 2;
    public static final int PPC_VALUE = 3;
    public static final int PPC64_VALUE = 4;
    public static final int ARMV6_VALUE = 5;
    public static final int ARMV7_VALUE = 6;
    public static final int UNKNOWN_VALUE = 7;
    public static final int ARMV7S_VALUE = 8;
    public static final int ARM64_VALUE = 9;

    public final int getNumber() {
      return value;
    }

    public static Architecture valueOf(int value) {
      switch (value) {
        case 0:
          return X86_32;
        case 1:
          return X86_64;
        case 2:
          return ARM_UNKNOWN;
        case 3:
          return PPC;
        case 4:
          return PPC64;
        case 5:
          return ARMV6;
        case 6:
          return ARMV7;
        case 7:
          return UNKNOWN;
        case 8:
          return ARMV7S;
        case 9:
          return ARM64;
        default:
          return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<Architecture> internalGetValueMap() {
      return internalValueMap;
    }

    private static com.google.protobuf.Internal.EnumLiteMap<Architecture> internalValueMap =
        new com.google.protobuf.Internal.EnumLiteMap<Architecture>() {
          public Architecture findValueByNumber(int number) {
            return Architecture.valueOf(number);
          }
        };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }

    public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
      return getDescriptor();
    }

    public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
      return com.google.firebase.crashlytics.device.session.Crashlytics.getDescriptor()
          .getEnumTypes()
          .get(0);
    }

    private static final Architecture[] VALUES = {
      X86_32, X86_64, ARM_UNKNOWN, PPC, PPC64, ARMV6, ARMV7, UNKNOWN, ARMV7S, ARM64,
    };

    public static Architecture valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private Architecture(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:Crashlytics.Architecture)
  }

  public enum Platform implements com.google.protobuf.ProtocolMessageEnum {
    MAC_OS_X(0, 0),
    IPHONE_OS(1, 1),
    IPHONE_SIMULATOR(2, 2),
    ANDROID(3, 3),
    WINDOWS(4, 4),
    LINUX(5, 5),
    BLACKBERRY(6, 6),
    OTHER(7, 1000),
    ;

    public static final int MAC_OS_X_VALUE = 0;
    public static final int IPHONE_OS_VALUE = 1;
    public static final int IPHONE_SIMULATOR_VALUE = 2;
    public static final int ANDROID_VALUE = 3;
    public static final int WINDOWS_VALUE = 4;
    public static final int LINUX_VALUE = 5;
    public static final int BLACKBERRY_VALUE = 6;
    public static final int OTHER_VALUE = 1000;

    public final int getNumber() {
      return value;
    }

    public static Platform valueOf(int value) {
      switch (value) {
        case 0:
          return MAC_OS_X;
        case 1:
          return IPHONE_OS;
        case 2:
          return IPHONE_SIMULATOR;
        case 3:
          return ANDROID;
        case 4:
          return WINDOWS;
        case 5:
          return LINUX;
        case 6:
          return BLACKBERRY;
        case 1000:
          return OTHER;
        default:
          return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<Platform> internalGetValueMap() {
      return internalValueMap;
    }

    private static com.google.protobuf.Internal.EnumLiteMap<Platform> internalValueMap =
        new com.google.protobuf.Internal.EnumLiteMap<Platform>() {
          public Platform findValueByNumber(int number) {
            return Platform.valueOf(number);
          }
        };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }

    public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
      return getDescriptor();
    }

    public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
      return com.google.firebase.crashlytics.device.session.Crashlytics.getDescriptor()
          .getEnumTypes()
          .get(1);
    }

    private static final Platform[] VALUES = {
      MAC_OS_X, IPHONE_OS, IPHONE_SIMULATOR, ANDROID, WINDOWS, LINUX, BLACKBERRY, OTHER,
    };

    public static Platform valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private Platform(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:Crashlytics.Platform)
  }

  public enum FrameImportance implements com.google.protobuf.ProtocolMessageEnum {
    SYMBOLICATED(0, 1),
    IN_DEVELOPER_CODE(1, 2),
    IN_CRASHED_THREAD(2, 4),
    LIKELY_LEAD_TO_CRASH(3, 8),
    IN_EXCEPTION(4, 16),
    ALGORITHM(5, 32),
    USER_DECLARED(6, 64),
    ;

    public static final int SYMBOLICATED_VALUE = 1;
    public static final int IN_DEVELOPER_CODE_VALUE = 2;
    public static final int IN_CRASHED_THREAD_VALUE = 4;
    public static final int LIKELY_LEAD_TO_CRASH_VALUE = 8;
    public static final int IN_EXCEPTION_VALUE = 16;
    public static final int ALGORITHM_VALUE = 32;
    public static final int USER_DECLARED_VALUE = 64;

    public final int getNumber() {
      return value;
    }

    public static FrameImportance valueOf(int value) {
      switch (value) {
        case 1:
          return SYMBOLICATED;
        case 2:
          return IN_DEVELOPER_CODE;
        case 4:
          return IN_CRASHED_THREAD;
        case 8:
          return LIKELY_LEAD_TO_CRASH;
        case 16:
          return IN_EXCEPTION;
        case 32:
          return ALGORITHM;
        case 64:
          return USER_DECLARED;
        default:
          return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<FrameImportance> internalGetValueMap() {
      return internalValueMap;
    }

    private static com.google.protobuf.Internal.EnumLiteMap<FrameImportance> internalValueMap =
        new com.google.protobuf.Internal.EnumLiteMap<FrameImportance>() {
          public FrameImportance findValueByNumber(int number) {
            return FrameImportance.valueOf(number);
          }
        };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }

    public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
      return getDescriptor();
    }

    public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
      return com.google.firebase.crashlytics.device.session.Crashlytics.getDescriptor()
          .getEnumTypes()
          .get(2);
    }

    private static final FrameImportance[] VALUES = {
      SYMBOLICATED,
      IN_DEVELOPER_CODE,
      IN_CRASHED_THREAD,
      LIKELY_LEAD_TO_CRASH,
      IN_EXCEPTION,
      ALGORITHM,
      USER_DECLARED,
    };

    public static FrameImportance valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private FrameImportance(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:Crashlytics.FrameImportance)
  }

  public enum FrameProperties implements com.google.protobuf.ProtocolMessageEnum {
    FRAME_UNKNOWN(0, 0),
    FRAME_TYPE_COMPILED(1, 1),
    FRAME_TYPE_VM(2, 2),
    FRAME_TYPE_INTERPRETED(3, 4),
    FRAME_TYPE_JIT(4, 8),
    FRAME_TYPE_SPECULATIVE(5, 16),
    FRAME_TYPE_INLINED(6, 32),
    FRAME_CONTEXT_DEVELOPER(7, 67108864),
    FRAME_CONTEXT_VENDOR(8, 134217728),
    FRAME_CONTEXT_RUNTIME(9, 268435456),
    FRAME_CONTEXT_PLATFORM(10, 536870912),
    FRAME_CONTEXT_SYSTEM(11, 1073741824),
    ;

    public static final int FRAME_UNKNOWN_VALUE = 0;
    public static final int FRAME_TYPE_COMPILED_VALUE = 1;
    public static final int FRAME_TYPE_VM_VALUE = 2;
    public static final int FRAME_TYPE_INTERPRETED_VALUE = 4;
    public static final int FRAME_TYPE_JIT_VALUE = 8;
    public static final int FRAME_TYPE_SPECULATIVE_VALUE = 16;
    public static final int FRAME_TYPE_INLINED_VALUE = 32;
    public static final int FRAME_CONTEXT_DEVELOPER_VALUE = 67108864;
    public static final int FRAME_CONTEXT_VENDOR_VALUE = 134217728;
    public static final int FRAME_CONTEXT_RUNTIME_VALUE = 268435456;
    public static final int FRAME_CONTEXT_PLATFORM_VALUE = 536870912;
    public static final int FRAME_CONTEXT_SYSTEM_VALUE = 1073741824;

    public final int getNumber() {
      return value;
    }

    public static FrameProperties valueOf(int value) {
      switch (value) {
        case 0:
          return FRAME_UNKNOWN;
        case 1:
          return FRAME_TYPE_COMPILED;
        case 2:
          return FRAME_TYPE_VM;
        case 4:
          return FRAME_TYPE_INTERPRETED;
        case 8:
          return FRAME_TYPE_JIT;
        case 16:
          return FRAME_TYPE_SPECULATIVE;
        case 32:
          return FRAME_TYPE_INLINED;
        case 67108864:
          return FRAME_CONTEXT_DEVELOPER;
        case 134217728:
          return FRAME_CONTEXT_VENDOR;
        case 268435456:
          return FRAME_CONTEXT_RUNTIME;
        case 536870912:
          return FRAME_CONTEXT_PLATFORM;
        case 1073741824:
          return FRAME_CONTEXT_SYSTEM;
        default:
          return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<FrameProperties> internalGetValueMap() {
      return internalValueMap;
    }

    private static com.google.protobuf.Internal.EnumLiteMap<FrameProperties> internalValueMap =
        new com.google.protobuf.Internal.EnumLiteMap<FrameProperties>() {
          public FrameProperties findValueByNumber(int number) {
            return FrameProperties.valueOf(number);
          }
        };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }

    public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
      return getDescriptor();
    }

    public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
      return com.google.firebase.crashlytics.device.session.Crashlytics.getDescriptor()
          .getEnumTypes()
          .get(3);
    }

    private static final FrameProperties[] VALUES = {
      FRAME_UNKNOWN,
      FRAME_TYPE_COMPILED,
      FRAME_TYPE_VM,
      FRAME_TYPE_INTERPRETED,
      FRAME_TYPE_JIT,
      FRAME_TYPE_SPECULATIVE,
      FRAME_TYPE_INLINED,
      FRAME_CONTEXT_DEVELOPER,
      FRAME_CONTEXT_VENDOR,
      FRAME_CONTEXT_RUNTIME,
      FRAME_CONTEXT_PLATFORM,
      FRAME_CONTEXT_SYSTEM,
    };

    public static FrameProperties valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private FrameProperties(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:Crashlytics.FrameProperties)
  }

  public enum GeneratorType implements com.google.protobuf.ProtocolMessageEnum {
    IOS_SDK(0, 1),
    MACOS_SDK(1, 2),
    ANDROID_SDK(2, 3),
    JAVASCRIPT_SDK(3, 4),
    ;

    public static final int IOS_SDK_VALUE = 1;
    public static final int MACOS_SDK_VALUE = 2;
    public static final int ANDROID_SDK_VALUE = 3;
    public static final int JAVASCRIPT_SDK_VALUE = 4;

    public final int getNumber() {
      return value;
    }

    public static GeneratorType valueOf(int value) {
      switch (value) {
        case 1:
          return IOS_SDK;
        case 2:
          return MACOS_SDK;
        case 3:
          return ANDROID_SDK;
        case 4:
          return JAVASCRIPT_SDK;
        default:
          return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<GeneratorType> internalGetValueMap() {
      return internalValueMap;
    }

    private static com.google.protobuf.Internal.EnumLiteMap<GeneratorType> internalValueMap =
        new com.google.protobuf.Internal.EnumLiteMap<GeneratorType>() {
          public GeneratorType findValueByNumber(int number) {
            return GeneratorType.valueOf(number);
          }
        };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }

    public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
      return getDescriptor();
    }

    public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
      return com.google.firebase.crashlytics.device.session.Crashlytics.getDescriptor()
          .getEnumTypes()
          .get(4);
    }

    private static final GeneratorType[] VALUES = {
      IOS_SDK, MACOS_SDK, ANDROID_SDK, JAVASCRIPT_SDK,
    };

    public static GeneratorType valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private GeneratorType(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:Crashlytics.GeneratorType)
  }

  public enum DeviceIdentifierType implements com.google.protobuf.ProtocolMessageEnum {
    WIFI_MAC_ADDRESS(0, 1),
    BLUETOOTH_MAC_ADDRESS(1, 2),
    IOS_UDID(2, 50),
    IOS_ADVERTISING_IDENTIFIER(3, 51),
    IOS_VENDOR_IDENTIFIER(4, 52),
    TESTER_DEVICE_TOKEN(5, 53),
    ANDROID_ID(6, 100),
    ANDROID_DEVICE_ID(7, 101),
    ANDROID_SERIAL(8, 102),
    ANDROID_ADVERTISING_ID(9, 103),
    MAC_HARDWARE_UUID(10, 200),
    MAC_SERIAL(11, 201),
    ;

    public static final int WIFI_MAC_ADDRESS_VALUE = 1;
    public static final int BLUETOOTH_MAC_ADDRESS_VALUE = 2;
    public static final int IOS_UDID_VALUE = 50;
    public static final int IOS_ADVERTISING_IDENTIFIER_VALUE = 51;
    public static final int IOS_VENDOR_IDENTIFIER_VALUE = 52;
    public static final int TESTER_DEVICE_TOKEN_VALUE = 53;
    public static final int ANDROID_ID_VALUE = 100;
    public static final int ANDROID_DEVICE_ID_VALUE = 101;
    public static final int ANDROID_SERIAL_VALUE = 102;
    public static final int ANDROID_ADVERTISING_ID_VALUE = 103;
    public static final int MAC_HARDWARE_UUID_VALUE = 200;
    public static final int MAC_SERIAL_VALUE = 201;

    public final int getNumber() {
      return value;
    }

    public static DeviceIdentifierType valueOf(int value) {
      switch (value) {
        case 1:
          return WIFI_MAC_ADDRESS;
        case 2:
          return BLUETOOTH_MAC_ADDRESS;
        case 50:
          return IOS_UDID;
        case 51:
          return IOS_ADVERTISING_IDENTIFIER;
        case 52:
          return IOS_VENDOR_IDENTIFIER;
        case 53:
          return TESTER_DEVICE_TOKEN;
        case 100:
          return ANDROID_ID;
        case 101:
          return ANDROID_DEVICE_ID;
        case 102:
          return ANDROID_SERIAL;
        case 103:
          return ANDROID_ADVERTISING_ID;
        case 200:
          return MAC_HARDWARE_UUID;
        case 201:
          return MAC_SERIAL;
        default:
          return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<DeviceIdentifierType>
        internalGetValueMap() {
      return internalValueMap;
    }

    private static com.google.protobuf.Internal.EnumLiteMap<DeviceIdentifierType> internalValueMap =
        new com.google.protobuf.Internal.EnumLiteMap<DeviceIdentifierType>() {
          public DeviceIdentifierType findValueByNumber(int number) {
            return DeviceIdentifierType.valueOf(number);
          }
        };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }

    public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
      return getDescriptor();
    }

    public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
      return com.google.firebase.crashlytics.device.session.Crashlytics.getDescriptor()
          .getEnumTypes()
          .get(5);
    }

    private static final DeviceIdentifierType[] VALUES = {
      WIFI_MAC_ADDRESS,
      BLUETOOTH_MAC_ADDRESS,
      IOS_UDID,
      IOS_ADVERTISING_IDENTIFIER,
      IOS_VENDOR_IDENTIFIER,
      TESTER_DEVICE_TOKEN,
      ANDROID_ID,
      ANDROID_DEVICE_ID,
      ANDROID_SERIAL,
      ANDROID_ADVERTISING_ID,
      MAC_HARDWARE_UUID,
      MAC_SERIAL,
    };

    public static DeviceIdentifierType valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DeviceIdentifierType(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:Crashlytics.DeviceIdentifierType)
  }

  public enum DeviceState implements com.google.protobuf.ProtocolMessageEnum {
    IS_SIMULATOR(0, 1),
    JAILBROKEN(1, 2),
    DEBUGGER_ATTACHED(2, 4),
    BETA_OS(3, 8),
    VENDOR_INTERNAL(4, 16),
    COMPROMISED_LIBRARIES(5, 32),
    ;

    public static final int IS_SIMULATOR_VALUE = 1;
    public static final int JAILBROKEN_VALUE = 2;
    public static final int DEBUGGER_ATTACHED_VALUE = 4;
    public static final int BETA_OS_VALUE = 8;
    public static final int VENDOR_INTERNAL_VALUE = 16;
    public static final int COMPROMISED_LIBRARIES_VALUE = 32;

    public final int getNumber() {
      return value;
    }

    public static DeviceState valueOf(int value) {
      switch (value) {
        case 1:
          return IS_SIMULATOR;
        case 2:
          return JAILBROKEN;
        case 4:
          return DEBUGGER_ATTACHED;
        case 8:
          return BETA_OS;
        case 16:
          return VENDOR_INTERNAL;
        case 32:
          return COMPROMISED_LIBRARIES;
        default:
          return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<DeviceState> internalGetValueMap() {
      return internalValueMap;
    }

    private static com.google.protobuf.Internal.EnumLiteMap<DeviceState> internalValueMap =
        new com.google.protobuf.Internal.EnumLiteMap<DeviceState>() {
          public DeviceState findValueByNumber(int number) {
            return DeviceState.valueOf(number);
          }
        };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }

    public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
      return getDescriptor();
    }

    public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
      return com.google.firebase.crashlytics.device.session.Crashlytics.getDescriptor()
          .getEnumTypes()
          .get(6);
    }

    private static final DeviceState[] VALUES = {
      IS_SIMULATOR, JAILBROKEN, DEBUGGER_ATTACHED, BETA_OS, VENDOR_INTERNAL, COMPROMISED_LIBRARIES,
    };

    public static DeviceState valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DeviceState(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:Crashlytics.DeviceState)
  }

  public enum DeliveryMechanism implements com.google.protobuf.ProtocolMessageEnum {
    DEVELOPER(0, 1),
    USER_SIDELOAD(1, 2),
    TEST_DISTRIBUTION(2, 3),
    APP_STORE(3, 4),
    ;

    public static final int DEVELOPER_VALUE = 1;
    public static final int USER_SIDELOAD_VALUE = 2;
    public static final int TEST_DISTRIBUTION_VALUE = 3;
    public static final int APP_STORE_VALUE = 4;

    public final int getNumber() {
      return value;
    }

    public static DeliveryMechanism valueOf(int value) {
      switch (value) {
        case 1:
          return DEVELOPER;
        case 2:
          return USER_SIDELOAD;
        case 3:
          return TEST_DISTRIBUTION;
        case 4:
          return APP_STORE;
        default:
          return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<DeliveryMechanism>
        internalGetValueMap() {
      return internalValueMap;
    }

    private static com.google.protobuf.Internal.EnumLiteMap<DeliveryMechanism> internalValueMap =
        new com.google.protobuf.Internal.EnumLiteMap<DeliveryMechanism>() {
          public DeliveryMechanism findValueByNumber(int number) {
            return DeliveryMechanism.valueOf(number);
          }
        };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }

    public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
      return getDescriptor();
    }

    public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
      return com.google.firebase.crashlytics.device.session.Crashlytics.getDescriptor()
          .getEnumTypes()
          .get(7);
    }

    private static final DeliveryMechanism[] VALUES = {
      DEVELOPER, USER_SIDELOAD, TEST_DISTRIBUTION, APP_STORE,
    };

    public static DeliveryMechanism valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DeliveryMechanism(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:Crashlytics.DeliveryMechanism)
  }

  public enum FrameDecoder implements com.google.protobuf.ProtocolMessageEnum {
    SYMBOLICATION(0, 1),
    DEOBFUSCATION(1, 2),
    CACHE_HYDRATION(2, 3),
    ;

    public static final int SYMBOLICATION_VALUE = 1;
    public static final int DEOBFUSCATION_VALUE = 2;
    public static final int CACHE_HYDRATION_VALUE = 3;

    public final int getNumber() {
      return value;
    }

    public static FrameDecoder valueOf(int value) {
      switch (value) {
        case 1:
          return SYMBOLICATION;
        case 2:
          return DEOBFUSCATION;
        case 3:
          return CACHE_HYDRATION;
        default:
          return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<FrameDecoder> internalGetValueMap() {
      return internalValueMap;
    }

    private static com.google.protobuf.Internal.EnumLiteMap<FrameDecoder> internalValueMap =
        new com.google.protobuf.Internal.EnumLiteMap<FrameDecoder>() {
          public FrameDecoder findValueByNumber(int number) {
            return FrameDecoder.valueOf(number);
          }
        };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }

    public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
      return getDescriptor();
    }

    public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
      return com.google.firebase.crashlytics.device.session.Crashlytics.getDescriptor()
          .getEnumTypes()
          .get(8);
    }

    private static final FrameDecoder[] VALUES = {
      SYMBOLICATION, DEOBFUSCATION, CACHE_HYDRATION,
    };

    public static FrameDecoder valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private FrameDecoder(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:Crashlytics.FrameDecoder)
  }

  public interface CustomAttributeOrBuilder extends com.google.protobuf.MessageOrBuilder {

    // required string key = 1;
    boolean hasKey();

    String getKey();

    // required string value = 2;
    boolean hasValue();

    String getValue();
  }

  public static final class CustomAttribute extends com.google.protobuf.GeneratedMessage
      implements CustomAttributeOrBuilder {
    // Use CustomAttribute.newBuilder() to construct.
    private CustomAttribute(Builder builder) {
      super(builder);
    }

    private CustomAttribute(boolean noInit) {}

    private static final CustomAttribute defaultInstance;

    public static CustomAttribute getDefaultInstance() {
      return defaultInstance;
    }

    public CustomAttribute getDefaultInstanceForType() {
      return defaultInstance;
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return com.google.firebase.crashlytics.device.session.Crashlytics
          .internal_static_Crashlytics_CustomAttribute_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.firebase.crashlytics.device.session.Crashlytics
          .internal_static_Crashlytics_CustomAttribute_fieldAccessorTable;
    }

    private int bitField0_;
    // required string key = 1;
    public static final int KEY_FIELD_NUMBER = 1;
    private java.lang.Object key_;

    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }

    public String getKey() {
      java.lang.Object ref = key_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          key_ = s;
        }
        return s;
      }
    }

    private com.google.protobuf.ByteString getKeyBytes() {
      java.lang.Object ref = key_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        key_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // required string value = 2;
    public static final int VALUE_FIELD_NUMBER = 2;
    private java.lang.Object value_;

    public boolean hasValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }

    public String getValue() {
      java.lang.Object ref = value_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          value_ = s;
        }
        return s;
      }
    }

    private com.google.protobuf.ByteString getValueBytes() {
      java.lang.Object ref = value_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        value_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      key_ = "";
      value_ = "";
    }

    private byte memoizedIsInitialized = -1;

    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasKey()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasValue()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getKeyBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getValueBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;

    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeBytesSize(1, getKeyBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeBytesSize(2, getValueBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;

    @java.lang.Override
    protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
        parseFrom(com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }

    public static com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
        parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
    }

    public static com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
        parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }

    public static com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
        parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
    }

    public static com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
        parseFrom(java.io.InputStream input) throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }

    public static com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
        parseFrom(
            java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
    }

    public static com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
        parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }

    public static com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
        parseDelimitedFrom(
            java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }

    public static com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
        parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }

    public static com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
        parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
    }

    public static Builder newBuilder() {
      return Builder.create();
    }

    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder(
        com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute prototype) {
      return newBuilder().mergeFrom(prototype);
    }

    public Builder toBuilder() {
      return newBuilder(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder<Builder>
        implements com.google.firebase.crashlytics.device.session.Crashlytics
            .CustomAttributeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return com.google.firebase.crashlytics.device.session.Crashlytics
            .internal_static_Crashlytics_CustomAttribute_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.firebase.crashlytics.device.session.Crashlytics
            .internal_static_Crashlytics_CustomAttribute_fieldAccessorTable;
      }

      // Construct using
      // com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {}
      }

      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        key_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        value_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
            .getDescriptor();
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
          getDefaultInstanceForType() {
        return com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
            .getDefaultInstance();
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute build() {
        com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute result =
            buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      private com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
          buildParsed() throws com.google.protobuf.InvalidProtocolBufferException {
        com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute result =
            buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result).asInvalidProtocolBufferException();
        }
        return result;
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
          buildPartial() {
        com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute result =
            new com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.key_ = key_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.value_ = value_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other
            instanceof com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute) {
          return mergeFrom(
              (com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(
          com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute other) {
        if (other
            == com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
                .getDefaultInstance()) return this;
        if (other.hasKey()) {
          setKey(other.getKey());
        }
        if (other.hasValue()) {
          setValue(other.getValue());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasKey()) {

          return false;
        }
        if (!hasValue()) {

          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default:
              {
                if (!parseUnknownField(
                    input, unknownFields,
                    extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                }
                break;
              }
            case 10:
              {
                bitField0_ |= 0x00000001;
                key_ = input.readBytes();
                break;
              }
            case 18:
              {
                bitField0_ |= 0x00000002;
                value_ = input.readBytes();
                break;
              }
          }
        }
      }

      private int bitField0_;

      // required string key = 1;
      private java.lang.Object key_ = "";

      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }

      public String getKey() {
        java.lang.Object ref = key_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          key_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }

      public Builder setKey(String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }

      public Builder clearKey() {
        bitField0_ = (bitField0_ & ~0x00000001);
        key_ = getDefaultInstance().getKey();
        onChanged();
        return this;
      }

      void setKey(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
      }

      // required string value = 2;
      private java.lang.Object value_ = "";

      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }

      public String getValue() {
        java.lang.Object ref = value_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          value_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }

      public Builder setValue(String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }

      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = getDefaultInstance().getValue();
        onChanged();
        return this;
      }

      void setValue(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
      }

      // @@protoc_insertion_point(builder_scope:Crashlytics.CustomAttribute)
    }

    static {
      defaultInstance = new CustomAttribute(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:Crashlytics.CustomAttribute)
  }

  public interface InternalDataOrBuilder extends com.google.protobuf.MessageOrBuilder {

    // optional string project_id = 1;
    boolean hasProjectId();

    String getProjectId();
  }

  public static final class InternalData extends com.google.protobuf.GeneratedMessage
      implements InternalDataOrBuilder {
    // Use InternalData.newBuilder() to construct.
    private InternalData(Builder builder) {
      super(builder);
    }

    private InternalData(boolean noInit) {}

    private static final InternalData defaultInstance;

    public static InternalData getDefaultInstance() {
      return defaultInstance;
    }

    public InternalData getDefaultInstanceForType() {
      return defaultInstance;
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return com.google.firebase.crashlytics.device.session.Crashlytics
          .internal_static_Crashlytics_InternalData_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.firebase.crashlytics.device.session.Crashlytics
          .internal_static_Crashlytics_InternalData_fieldAccessorTable;
    }

    private int bitField0_;
    // optional string project_id = 1;
    public static final int PROJECT_ID_FIELD_NUMBER = 1;
    private java.lang.Object projectId_;

    public boolean hasProjectId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }

    public String getProjectId() {
      java.lang.Object ref = projectId_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          projectId_ = s;
        }
        return s;
      }
    }

    private com.google.protobuf.ByteString getProjectIdBytes() {
      java.lang.Object ref = projectId_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        projectId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      projectId_ = "";
    }

    private byte memoizedIsInitialized = -1;

    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getProjectIdBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;

    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeBytesSize(1, getProjectIdBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;

    @java.lang.Override
    protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.google.firebase.crashlytics.device.session.Crashlytics.InternalData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }

    public static com.google.firebase.crashlytics.device.session.Crashlytics.InternalData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
    }

    public static com.google.firebase.crashlytics.device.session.Crashlytics.InternalData parseFrom(
        byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }

    public static com.google.firebase.crashlytics.device.session.Crashlytics.InternalData parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
    }

    public static com.google.firebase.crashlytics.device.session.Crashlytics.InternalData parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }

    public static com.google.firebase.crashlytics.device.session.Crashlytics.InternalData parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
    }

    public static com.google.firebase.crashlytics.device.session.Crashlytics.InternalData
        parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }

    public static com.google.firebase.crashlytics.device.session.Crashlytics.InternalData
        parseDelimitedFrom(
            java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }

    public static com.google.firebase.crashlytics.device.session.Crashlytics.InternalData parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }

    public static com.google.firebase.crashlytics.device.session.Crashlytics.InternalData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
    }

    public static Builder newBuilder() {
      return Builder.create();
    }

    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder(
        com.google.firebase.crashlytics.device.session.Crashlytics.InternalData prototype) {
      return newBuilder().mergeFrom(prototype);
    }

    public Builder toBuilder() {
      return newBuilder(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder<Builder>
        implements com.google.firebase.crashlytics.device.session.Crashlytics
            .InternalDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return com.google.firebase.crashlytics.device.session.Crashlytics
            .internal_static_Crashlytics_InternalData_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.firebase.crashlytics.device.session.Crashlytics
            .internal_static_Crashlytics_InternalData_fieldAccessorTable;
      }

      // Construct using
      // com.google.firebase.crashlytics.device.session.Crashlytics.InternalData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {}
      }

      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        projectId_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return com.google.firebase.crashlytics.device.session.Crashlytics.InternalData
            .getDescriptor();
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.InternalData
          getDefaultInstanceForType() {
        return com.google.firebase.crashlytics.device.session.Crashlytics.InternalData
            .getDefaultInstance();
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.InternalData build() {
        com.google.firebase.crashlytics.device.session.Crashlytics.InternalData result =
            buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      private com.google.firebase.crashlytics.device.session.Crashlytics.InternalData buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        com.google.firebase.crashlytics.device.session.Crashlytics.InternalData result =
            buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result).asInvalidProtocolBufferException();
        }
        return result;
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.InternalData
          buildPartial() {
        com.google.firebase.crashlytics.device.session.Crashlytics.InternalData result =
            new com.google.firebase.crashlytics.device.session.Crashlytics.InternalData(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.projectId_ = projectId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other
            instanceof com.google.firebase.crashlytics.device.session.Crashlytics.InternalData) {
          return mergeFrom(
              (com.google.firebase.crashlytics.device.session.Crashlytics.InternalData) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(
          com.google.firebase.crashlytics.device.session.Crashlytics.InternalData other) {
        if (other
            == com.google.firebase.crashlytics.device.session.Crashlytics.InternalData
                .getDefaultInstance()) return this;
        if (other.hasProjectId()) {
          setProjectId(other.getProjectId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default:
              {
                if (!parseUnknownField(
                    input, unknownFields,
                    extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                }
                break;
              }
            case 10:
              {
                bitField0_ |= 0x00000001;
                projectId_ = input.readBytes();
                break;
              }
          }
        }
      }

      private int bitField0_;

      // optional string project_id = 1;
      private java.lang.Object projectId_ = "";

      public boolean hasProjectId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }

      public String getProjectId() {
        java.lang.Object ref = projectId_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          projectId_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }

      public Builder setProjectId(String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        projectId_ = value;
        onChanged();
        return this;
      }

      public Builder clearProjectId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        projectId_ = getDefaultInstance().getProjectId();
        onChanged();
        return this;
      }

      void setProjectId(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000001;
        projectId_ = value;
        onChanged();
      }

      // @@protoc_insertion_point(builder_scope:Crashlytics.InternalData)
    }

    static {
      defaultInstance = new InternalData(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:Crashlytics.InternalData)
  }

  public interface SessionOrBuilder extends com.google.protobuf.MessageOrBuilder {

    // required string generator = 1;
    boolean hasGenerator();

    String getGenerator();

    // required bytes identifier = 2;
    boolean hasIdentifier();

    com.google.protobuf.ByteString getIdentifier();

    // required uint64 started_at = 3;
    boolean hasStartedAt();

    long getStartedAt();

    // optional uint64 ended_at = 4;
    boolean hasEndedAt();

    long getEndedAt();

    // optional bool crashed = 5;
    boolean hasCrashed();

    boolean getCrashed();

    // optional uint32 analyzer = 11;
    boolean hasAnalyzer();

    int getAnalyzer();

    // optional .Crashlytics.GeneratorType generator_type = 12;
    boolean hasGeneratorType();

    com.google.firebase.crashlytics.device.session.Crashlytics.GeneratorType getGeneratorType();

    // optional .Crashlytics.FrameDecoder frame_decoder = 13;
    boolean hasFrameDecoder();

    com.google.firebase.crashlytics.device.session.Crashlytics.FrameDecoder getFrameDecoder();

    // optional .Crashlytics.InternalData internal_data = 14;
    boolean hasInternalData();

    com.google.firebase.crashlytics.device.session.Crashlytics.InternalData getInternalData();

    com.google.firebase.crashlytics.device.session.Crashlytics.InternalDataOrBuilder
        getInternalDataOrBuilder();

    // optional .Crashlytics.Session.User user = 6;
    boolean hasUser();

    com.google.firebase.crashlytics.device.session.Crashlytics.Session.User getUser();

    com.google.firebase.crashlytics.device.session.Crashlytics.Session.UserOrBuilder
        getUserOrBuilder();

    // required .Crashlytics.Session.Application app = 7;
    boolean hasApp();

    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application getApp();

    com.google.firebase.crashlytics.device.session.Crashlytics.Session.ApplicationOrBuilder
        getAppOrBuilder();

    // optional .Crashlytics.Session.OperatingSystem os = 8;
    boolean hasOs();

    com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem getOs();

    com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystemOrBuilder
        getOsOrBuilder();

    // optional .Crashlytics.Session.Device device = 9;
    boolean hasDevice();

    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device getDevice();

    com.google.firebase.crashlytics.device.session.Crashlytics.Session.DeviceOrBuilder
        getDeviceOrBuilder();

    // repeated .Crashlytics.Session.Event events = 10;
    java.util.List<com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event>
        getEventsList();

    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event getEvents(int index);

    int getEventsCount();

    java.util.List<
            ? extends
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.EventOrBuilder>
        getEventsOrBuilderList();

    com.google.firebase.crashlytics.device.session.Crashlytics.Session.EventOrBuilder
        getEventsOrBuilder(int index);
  }

  public static final class Session extends com.google.protobuf.GeneratedMessage
      implements SessionOrBuilder {
    // Use Session.newBuilder() to construct.
    private Session(Builder builder) {
      super(builder);
    }

    private Session(boolean noInit) {}

    private static final Session defaultInstance;

    public static Session getDefaultInstance() {
      return defaultInstance;
    }

    public Session getDefaultInstanceForType() {
      return defaultInstance;
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return com.google.firebase.crashlytics.device.session.Crashlytics
          .internal_static_Crashlytics_Session_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.firebase.crashlytics.device.session.Crashlytics
          .internal_static_Crashlytics_Session_fieldAccessorTable;
    }

    public interface UserOrBuilder extends com.google.protobuf.MessageOrBuilder {

      // required string identifier = 1;
      boolean hasIdentifier();

      String getIdentifier();

      // optional string name = 2;
      boolean hasName();

      String getName();

      // optional string email = 3;
      boolean hasEmail();

      String getEmail();

      // repeated .Crashlytics.CustomAttribute custom_attributes = 4;
      java.util.List<com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute>
          getCustomAttributesList();

      com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
          getCustomAttributes(int index);

      int getCustomAttributesCount();

      java.util.List<
              ? extends
                  com.google.firebase.crashlytics.device.session.Crashlytics
                      .CustomAttributeOrBuilder>
          getCustomAttributesOrBuilderList();

      com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttributeOrBuilder
          getCustomAttributesOrBuilder(int index);
    }

    public static final class User extends com.google.protobuf.GeneratedMessage
        implements UserOrBuilder {
      // Use User.newBuilder() to construct.
      private User(Builder builder) {
        super(builder);
      }

      private User(boolean noInit) {}

      private static final User defaultInstance;

      public static User getDefaultInstance() {
        return defaultInstance;
      }

      public User getDefaultInstanceForType() {
        return defaultInstance;
      }

      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return com.google.firebase.crashlytics.device.session.Crashlytics
            .internal_static_Crashlytics_Session_User_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.firebase.crashlytics.device.session.Crashlytics
            .internal_static_Crashlytics_Session_User_fieldAccessorTable;
      }

      private int bitField0_;
      // required string identifier = 1;
      public static final int IDENTIFIER_FIELD_NUMBER = 1;
      private java.lang.Object identifier_;

      public boolean hasIdentifier() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }

      public String getIdentifier() {
        java.lang.Object ref = identifier_;
        if (ref instanceof String) {
          return (String) ref;
        } else {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (com.google.protobuf.Internal.isValidUtf8(bs)) {
            identifier_ = s;
          }
          return s;
        }
      }

      private com.google.protobuf.ByteString getIdentifierBytes() {
        java.lang.Object ref = identifier_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
          identifier_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      // optional string name = 2;
      public static final int NAME_FIELD_NUMBER = 2;
      private java.lang.Object name_;

      public boolean hasName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }

      public String getName() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          return (String) ref;
        } else {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (com.google.protobuf.Internal.isValidUtf8(bs)) {
            name_ = s;
          }
          return s;
        }
      }

      private com.google.protobuf.ByteString getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      // optional string email = 3;
      public static final int EMAIL_FIELD_NUMBER = 3;
      private java.lang.Object email_;

      public boolean hasEmail() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }

      public String getEmail() {
        java.lang.Object ref = email_;
        if (ref instanceof String) {
          return (String) ref;
        } else {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (com.google.protobuf.Internal.isValidUtf8(bs)) {
            email_ = s;
          }
          return s;
        }
      }

      private com.google.protobuf.ByteString getEmailBytes() {
        java.lang.Object ref = email_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
          email_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      // repeated .Crashlytics.CustomAttribute custom_attributes = 4;
      public static final int CUSTOM_ATTRIBUTES_FIELD_NUMBER = 4;
      private java.util.List<
              com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute>
          customAttributes_;

      public java.util.List<
              com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute>
          getCustomAttributesList() {
        return customAttributes_;
      }

      public java.util.List<
              ? extends
                  com.google.firebase.crashlytics.device.session.Crashlytics
                      .CustomAttributeOrBuilder>
          getCustomAttributesOrBuilderList() {
        return customAttributes_;
      }

      public int getCustomAttributesCount() {
        return customAttributes_.size();
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
          getCustomAttributes(int index) {
        return customAttributes_.get(index);
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttributeOrBuilder
          getCustomAttributesOrBuilder(int index) {
        return customAttributes_.get(index);
      }

      private void initFields() {
        identifier_ = "";
        name_ = "";
        email_ = "";
        customAttributes_ = java.util.Collections.emptyList();
      }

      private byte memoizedIsInitialized = -1;

      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        if (!hasIdentifier()) {
          memoizedIsInitialized = 0;
          return false;
        }
        for (int i = 0; i < getCustomAttributesCount(); i++) {
          if (!getCustomAttributes(i).isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBytes(1, getIdentifierBytes());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeBytes(2, getNameBytes());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeBytes(3, getEmailBytes());
        }
        for (int i = 0; i < customAttributes_.size(); i++) {
          output.writeMessage(4, customAttributes_.get(i));
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;

      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream.computeBytesSize(1, getIdentifierBytes());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream.computeBytesSize(2, getNameBytes());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream.computeBytesSize(3, getEmailBytes());
        }
        for (int i = 0; i < customAttributes_.size(); i++) {
          size +=
              com.google.protobuf.CodedOutputStream.computeMessageSize(4, customAttributes_.get(i));
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;

      @java.lang.Override
      protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.User
          parseFrom(com.google.protobuf.ByteString data)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.User
          parseFrom(
              com.google.protobuf.ByteString data,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.User
          parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.User
          parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.User
          parseFrom(java.io.InputStream input) throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.User
          parseFrom(
              java.io.InputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.User
          parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.User
          parseDelimitedFrom(
              java.io.InputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.User
          parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.User
          parseFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
      }

      public static Builder newBuilder() {
        return Builder.create();
      }

      public Builder newBuilderForType() {
        return newBuilder();
      }

      public static Builder newBuilder(
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.User prototype) {
        return newBuilder().mergeFrom(prototype);
      }

      public Builder toBuilder() {
        return newBuilder(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }

      public static final class Builder
          extends com.google.protobuf.GeneratedMessage.Builder<Builder>
          implements com.google.firebase.crashlytics.device.session.Crashlytics.Session
              .UserOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
          return com.google.firebase.crashlytics.device.session.Crashlytics
              .internal_static_Crashlytics_Session_User_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.firebase.crashlytics.device.session.Crashlytics
              .internal_static_Crashlytics_Session_User_fieldAccessorTable;
        }

        // Construct using
        // com.google.firebase.crashlytics.device.session.Crashlytics.Session.User.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }

        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getCustomAttributesFieldBuilder();
          }
        }

        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          identifier_ = "";
          bitField0_ = (bitField0_ & ~0x00000001);
          name_ = "";
          bitField0_ = (bitField0_ & ~0x00000002);
          email_ = "";
          bitField0_ = (bitField0_ & ~0x00000004);
          if (customAttributesBuilder_ == null) {
            customAttributes_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            customAttributesBuilder_.clear();
          }
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
          return com.google.firebase.crashlytics.device.session.Crashlytics.Session.User
              .getDescriptor();
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.User
            getDefaultInstanceForType() {
          return com.google.firebase.crashlytics.device.session.Crashlytics.Session.User
              .getDefaultInstance();
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.User build() {
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.User result =
              buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        private com.google.firebase.crashlytics.device.session.Crashlytics.Session.User
            buildParsed() throws com.google.protobuf.InvalidProtocolBufferException {
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.User result =
              buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result).asInvalidProtocolBufferException();
          }
          return result;
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.User
            buildPartial() {
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.User result =
              new com.google.firebase.crashlytics.device.session.Crashlytics.Session.User(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.identifier_ = identifier_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.name_ = name_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.email_ = email_;
          if (customAttributesBuilder_ == null) {
            if (((bitField0_ & 0x00000008) == 0x00000008)) {
              customAttributes_ = java.util.Collections.unmodifiableList(customAttributes_);
              bitField0_ = (bitField0_ & ~0x00000008);
            }
            result.customAttributes_ = customAttributes_;
          } else {
            result.customAttributes_ = customAttributesBuilder_.build();
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other
              instanceof com.google.firebase.crashlytics.device.session.Crashlytics.Session.User) {
            return mergeFrom(
                (com.google.firebase.crashlytics.device.session.Crashlytics.Session.User) other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.User other) {
          if (other
              == com.google.firebase.crashlytics.device.session.Crashlytics.Session.User
                  .getDefaultInstance()) return this;
          if (other.hasIdentifier()) {
            setIdentifier(other.getIdentifier());
          }
          if (other.hasName()) {
            setName(other.getName());
          }
          if (other.hasEmail()) {
            setEmail(other.getEmail());
          }
          if (customAttributesBuilder_ == null) {
            if (!other.customAttributes_.isEmpty()) {
              if (customAttributes_.isEmpty()) {
                customAttributes_ = other.customAttributes_;
                bitField0_ = (bitField0_ & ~0x00000008);
              } else {
                ensureCustomAttributesIsMutable();
                customAttributes_.addAll(other.customAttributes_);
              }
              onChanged();
            }
          } else {
            if (!other.customAttributes_.isEmpty()) {
              if (customAttributesBuilder_.isEmpty()) {
                customAttributesBuilder_.dispose();
                customAttributesBuilder_ = null;
                customAttributes_ = other.customAttributes_;
                bitField0_ = (bitField0_ & ~0x00000008);
                customAttributesBuilder_ =
                    com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders
                        ? getCustomAttributesFieldBuilder()
                        : null;
              } else {
                customAttributesBuilder_.addAllMessages(other.customAttributes_);
              }
            }
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          if (!hasIdentifier()) {

            return false;
          }
          for (int i = 0; i < getCustomAttributesCount(); i++) {
            if (!getCustomAttributes(i).isInitialized()) {

              return false;
            }
          }
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder(this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              default:
                {
                  if (!parseUnknownField(
                      input, unknownFields,
                      extensionRegistry, tag)) {
                    this.setUnknownFields(unknownFields.build());
                    onChanged();
                    return this;
                  }
                  break;
                }
              case 10:
                {
                  bitField0_ |= 0x00000001;
                  identifier_ = input.readBytes();
                  break;
                }
              case 18:
                {
                  bitField0_ |= 0x00000002;
                  name_ = input.readBytes();
                  break;
                }
              case 26:
                {
                  bitField0_ |= 0x00000004;
                  email_ = input.readBytes();
                  break;
                }
              case 34:
                {
                  com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute.Builder
                      subBuilder =
                          com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
                              .newBuilder();
                  input.readMessage(subBuilder, extensionRegistry);
                  addCustomAttributes(subBuilder.buildPartial());
                  break;
                }
            }
          }
        }

        private int bitField0_;

        // required string identifier = 1;
        private java.lang.Object identifier_ = "";

        public boolean hasIdentifier() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }

        public String getIdentifier() {
          java.lang.Object ref = identifier_;
          if (!(ref instanceof String)) {
            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
            identifier_ = s;
            return s;
          } else {
            return (String) ref;
          }
        }

        public Builder setIdentifier(String value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000001;
          identifier_ = value;
          onChanged();
          return this;
        }

        public Builder clearIdentifier() {
          bitField0_ = (bitField0_ & ~0x00000001);
          identifier_ = getDefaultInstance().getIdentifier();
          onChanged();
          return this;
        }

        void setIdentifier(com.google.protobuf.ByteString value) {
          bitField0_ |= 0x00000001;
          identifier_ = value;
          onChanged();
        }

        // optional string name = 2;
        private java.lang.Object name_ = "";

        public boolean hasName() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }

        public String getName() {
          java.lang.Object ref = name_;
          if (!(ref instanceof String)) {
            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
            name_ = s;
            return s;
          } else {
            return (String) ref;
          }
        }

        public Builder setName(String value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000002;
          name_ = value;
          onChanged();
          return this;
        }

        public Builder clearName() {
          bitField0_ = (bitField0_ & ~0x00000002);
          name_ = getDefaultInstance().getName();
          onChanged();
          return this;
        }

        void setName(com.google.protobuf.ByteString value) {
          bitField0_ |= 0x00000002;
          name_ = value;
          onChanged();
        }

        // optional string email = 3;
        private java.lang.Object email_ = "";

        public boolean hasEmail() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }

        public String getEmail() {
          java.lang.Object ref = email_;
          if (!(ref instanceof String)) {
            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
            email_ = s;
            return s;
          } else {
            return (String) ref;
          }
        }

        public Builder setEmail(String value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000004;
          email_ = value;
          onChanged();
          return this;
        }

        public Builder clearEmail() {
          bitField0_ = (bitField0_ & ~0x00000004);
          email_ = getDefaultInstance().getEmail();
          onChanged();
          return this;
        }

        void setEmail(com.google.protobuf.ByteString value) {
          bitField0_ |= 0x00000004;
          email_ = value;
          onChanged();
        }

        // repeated .Crashlytics.CustomAttribute custom_attributes = 4;
        private java.util.List<
                com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute>
            customAttributes_ = java.util.Collections.emptyList();

        private void ensureCustomAttributesIsMutable() {
          if (!((bitField0_ & 0x00000008) == 0x00000008)) {
            customAttributes_ =
                new java.util.ArrayList<
                    com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute>(
                    customAttributes_);
            bitField0_ |= 0x00000008;
          }
        }

        private com.google.protobuf.RepeatedFieldBuilder<
                com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute,
                com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute.Builder,
                com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttributeOrBuilder>
            customAttributesBuilder_;

        public java.util.List<
                com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute>
            getCustomAttributesList() {
          if (customAttributesBuilder_ == null) {
            return java.util.Collections.unmodifiableList(customAttributes_);
          } else {
            return customAttributesBuilder_.getMessageList();
          }
        }

        public int getCustomAttributesCount() {
          if (customAttributesBuilder_ == null) {
            return customAttributes_.size();
          } else {
            return customAttributesBuilder_.getCount();
          }
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
            getCustomAttributes(int index) {
          if (customAttributesBuilder_ == null) {
            return customAttributes_.get(index);
          } else {
            return customAttributesBuilder_.getMessage(index);
          }
        }

        public Builder setCustomAttributes(
            int index,
            com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute value) {
          if (customAttributesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureCustomAttributesIsMutable();
            customAttributes_.set(index, value);
            onChanged();
          } else {
            customAttributesBuilder_.setMessage(index, value);
          }
          return this;
        }

        public Builder setCustomAttributes(
            int index,
            com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute.Builder
                builderForValue) {
          if (customAttributesBuilder_ == null) {
            ensureCustomAttributesIsMutable();
            customAttributes_.set(index, builderForValue.build());
            onChanged();
          } else {
            customAttributesBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }

        public Builder addCustomAttributes(
            com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute value) {
          if (customAttributesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureCustomAttributesIsMutable();
            customAttributes_.add(value);
            onChanged();
          } else {
            customAttributesBuilder_.addMessage(value);
          }
          return this;
        }

        public Builder addCustomAttributes(
            int index,
            com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute value) {
          if (customAttributesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureCustomAttributesIsMutable();
            customAttributes_.add(index, value);
            onChanged();
          } else {
            customAttributesBuilder_.addMessage(index, value);
          }
          return this;
        }

        public Builder addCustomAttributes(
            com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute.Builder
                builderForValue) {
          if (customAttributesBuilder_ == null) {
            ensureCustomAttributesIsMutable();
            customAttributes_.add(builderForValue.build());
            onChanged();
          } else {
            customAttributesBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }

        public Builder addCustomAttributes(
            int index,
            com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute.Builder
                builderForValue) {
          if (customAttributesBuilder_ == null) {
            ensureCustomAttributesIsMutable();
            customAttributes_.add(index, builderForValue.build());
            onChanged();
          } else {
            customAttributesBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }

        public Builder addAllCustomAttributes(
            java.lang.Iterable<
                    ? extends
                        com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute>
                values) {
          if (customAttributesBuilder_ == null) {
            ensureCustomAttributesIsMutable();
            super.addAll(values, customAttributes_);
            onChanged();
          } else {
            customAttributesBuilder_.addAllMessages(values);
          }
          return this;
        }

        public Builder clearCustomAttributes() {
          if (customAttributesBuilder_ == null) {
            customAttributes_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000008);
            onChanged();
          } else {
            customAttributesBuilder_.clear();
          }
          return this;
        }

        public Builder removeCustomAttributes(int index) {
          if (customAttributesBuilder_ == null) {
            ensureCustomAttributesIsMutable();
            customAttributes_.remove(index);
            onChanged();
          } else {
            customAttributesBuilder_.remove(index);
          }
          return this;
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute.Builder
            getCustomAttributesBuilder(int index) {
          return getCustomAttributesFieldBuilder().getBuilder(index);
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttributeOrBuilder
            getCustomAttributesOrBuilder(int index) {
          if (customAttributesBuilder_ == null) {
            return customAttributes_.get(index);
          } else {
            return customAttributesBuilder_.getMessageOrBuilder(index);
          }
        }

        public java.util.List<
                ? extends
                    com.google.firebase.crashlytics.device.session.Crashlytics
                        .CustomAttributeOrBuilder>
            getCustomAttributesOrBuilderList() {
          if (customAttributesBuilder_ != null) {
            return customAttributesBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(customAttributes_);
          }
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute.Builder
            addCustomAttributesBuilder() {
          return getCustomAttributesFieldBuilder()
              .addBuilder(
                  com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
                      .getDefaultInstance());
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute.Builder
            addCustomAttributesBuilder(int index) {
          return getCustomAttributesFieldBuilder()
              .addBuilder(
                  index,
                  com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
                      .getDefaultInstance());
        }

        public java.util.List<
                com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute.Builder>
            getCustomAttributesBuilderList() {
          return getCustomAttributesFieldBuilder().getBuilderList();
        }

        private com.google.protobuf.RepeatedFieldBuilder<
                com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute,
                com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute.Builder,
                com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttributeOrBuilder>
            getCustomAttributesFieldBuilder() {
          if (customAttributesBuilder_ == null) {
            customAttributesBuilder_ =
                new com.google.protobuf.RepeatedFieldBuilder<
                    com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute,
                    com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
                        .Builder,
                    com.google.firebase.crashlytics.device.session.Crashlytics
                        .CustomAttributeOrBuilder>(
                    customAttributes_,
                    ((bitField0_ & 0x00000008) == 0x00000008),
                    getParentForChildren(),
                    isClean());
            customAttributes_ = null;
          }
          return customAttributesBuilder_;
        }

        // @@protoc_insertion_point(builder_scope:Crashlytics.Session.User)
      }

      static {
        defaultInstance = new User(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:Crashlytics.Session.User)
    }

    public interface ApplicationOrBuilder extends com.google.protobuf.MessageOrBuilder {

      // required string identifier = 1;
      boolean hasIdentifier();

      String getIdentifier();

      // required string version = 2;
      boolean hasVersion();

      String getVersion();

      // optional string display_version = 3;
      boolean hasDisplayVersion();

      String getDisplayVersion();

      // optional string installation_uuid = 6;
      boolean hasInstallationUuid();

      String getInstallationUuid();

      // optional string cls_id = 7;
      boolean hasClsId();

      String getClsId();

      // optional string development_platform = 8;
      boolean hasDevelopmentPlatform();

      String getDevelopmentPlatform();

      // optional string development_platform_version = 9;
      boolean hasDevelopmentPlatformVersion();

      String getDevelopmentPlatformVersion();

      // optional .Crashlytics.DeliveryMechanism delivery_mechanism = 10;
      boolean hasDeliveryMechanism();

      com.google.firebase.crashlytics.device.session.Crashlytics.DeliveryMechanism
          getDeliveryMechanism();

      // optional .Crashlytics.Session.Application.Process process = 4;
      boolean hasProcess();

      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application.Process
          getProcess();

      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
              .ProcessOrBuilder
          getProcessOrBuilder();

      // optional .Crashlytics.Session.Application.Organization organization = 5;
      boolean hasOrganization();

      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application.Organization
          getOrganization();

      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
              .OrganizationOrBuilder
          getOrganizationOrBuilder();
    }

    public static final class Application extends com.google.protobuf.GeneratedMessage
        implements ApplicationOrBuilder {
      // Use Application.newBuilder() to construct.
      private Application(Builder builder) {
        super(builder);
      }

      private Application(boolean noInit) {}

      private static final Application defaultInstance;

      public static Application getDefaultInstance() {
        return defaultInstance;
      }

      public Application getDefaultInstanceForType() {
        return defaultInstance;
      }

      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return com.google.firebase.crashlytics.device.session.Crashlytics
            .internal_static_Crashlytics_Session_Application_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.firebase.crashlytics.device.session.Crashlytics
            .internal_static_Crashlytics_Session_Application_fieldAccessorTable;
      }

      public interface ProcessOrBuilder extends com.google.protobuf.MessageOrBuilder {

        // optional string name = 1;
        boolean hasName();

        String getName();

        // required uint32 pid = 2;
        boolean hasPid();

        int getPid();

        // optional string path = 3;
        boolean hasPath();

        String getPath();

        // optional string parent_process_name = 4;
        boolean hasParentProcessName();

        String getParentProcessName();

        // optional uint32 parent_process_id = 5;
        boolean hasParentProcessId();

        int getParentProcessId();
      }

      public static final class Process extends com.google.protobuf.GeneratedMessage
          implements ProcessOrBuilder {
        // Use Process.newBuilder() to construct.
        private Process(Builder builder) {
          super(builder);
        }

        private Process(boolean noInit) {}

        private static final Process defaultInstance;

        public static Process getDefaultInstance() {
          return defaultInstance;
        }

        public Process getDefaultInstanceForType() {
          return defaultInstance;
        }

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
          return com.google.firebase.crashlytics.device.session.Crashlytics
              .internal_static_Crashlytics_Session_Application_Process_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.firebase.crashlytics.device.session.Crashlytics
              .internal_static_Crashlytics_Session_Application_Process_fieldAccessorTable;
        }

        private int bitField0_;
        // optional string name = 1;
        public static final int NAME_FIELD_NUMBER = 1;
        private java.lang.Object name_;

        public boolean hasName() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }

        public String getName() {
          java.lang.Object ref = name_;
          if (ref instanceof String) {
            return (String) ref;
          } else {
            com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
            String s = bs.toStringUtf8();
            if (com.google.protobuf.Internal.isValidUtf8(bs)) {
              name_ = s;
            }
            return s;
          }
        }

        private com.google.protobuf.ByteString getNameBytes() {
          java.lang.Object ref = name_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b =
                com.google.protobuf.ByteString.copyFromUtf8((String) ref);
            name_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }

        // required uint32 pid = 2;
        public static final int PID_FIELD_NUMBER = 2;
        private int pid_;

        public boolean hasPid() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }

        public int getPid() {
          return pid_;
        }

        // optional string path = 3;
        public static final int PATH_FIELD_NUMBER = 3;
        private java.lang.Object path_;

        public boolean hasPath() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }

        public String getPath() {
          java.lang.Object ref = path_;
          if (ref instanceof String) {
            return (String) ref;
          } else {
            com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
            String s = bs.toStringUtf8();
            if (com.google.protobuf.Internal.isValidUtf8(bs)) {
              path_ = s;
            }
            return s;
          }
        }

        private com.google.protobuf.ByteString getPathBytes() {
          java.lang.Object ref = path_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b =
                com.google.protobuf.ByteString.copyFromUtf8((String) ref);
            path_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }

        // optional string parent_process_name = 4;
        public static final int PARENT_PROCESS_NAME_FIELD_NUMBER = 4;
        private java.lang.Object parentProcessName_;

        public boolean hasParentProcessName() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }

        public String getParentProcessName() {
          java.lang.Object ref = parentProcessName_;
          if (ref instanceof String) {
            return (String) ref;
          } else {
            com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
            String s = bs.toStringUtf8();
            if (com.google.protobuf.Internal.isValidUtf8(bs)) {
              parentProcessName_ = s;
            }
            return s;
          }
        }

        private com.google.protobuf.ByteString getParentProcessNameBytes() {
          java.lang.Object ref = parentProcessName_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b =
                com.google.protobuf.ByteString.copyFromUtf8((String) ref);
            parentProcessName_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }

        // optional uint32 parent_process_id = 5;
        public static final int PARENT_PROCESS_ID_FIELD_NUMBER = 5;
        private int parentProcessId_;

        public boolean hasParentProcessId() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }

        public int getParentProcessId() {
          return parentProcessId_;
        }

        private void initFields() {
          name_ = "";
          pid_ = 0;
          path_ = "";
          parentProcessName_ = "";
          parentProcessId_ = 0;
        }

        private byte memoizedIsInitialized = -1;

        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized != -1) return isInitialized == 1;

          if (!hasPid()) {
            memoizedIsInitialized = 0;
            return false;
          }
          memoizedIsInitialized = 1;
          return true;
        }

        public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
          getSerializedSize();
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            output.writeBytes(1, getNameBytes());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            output.writeUInt32(2, pid_);
          }
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            output.writeBytes(3, getPathBytes());
          }
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            output.writeBytes(4, getParentProcessNameBytes());
          }
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            output.writeUInt32(5, parentProcessId_);
          }
          getUnknownFields().writeTo(output);
        }

        private int memoizedSerializedSize = -1;

        public int getSerializedSize() {
          int size = memoizedSerializedSize;
          if (size != -1) return size;

          size = 0;
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            size += com.google.protobuf.CodedOutputStream.computeBytesSize(1, getNameBytes());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            size += com.google.protobuf.CodedOutputStream.computeUInt32Size(2, pid_);
          }
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            size += com.google.protobuf.CodedOutputStream.computeBytesSize(3, getPathBytes());
          }
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            size +=
                com.google.protobuf.CodedOutputStream.computeBytesSize(
                    4, getParentProcessNameBytes());
          }
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            size += com.google.protobuf.CodedOutputStream.computeUInt32Size(5, parentProcessId_);
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSerializedSize = size;
          return size;
        }

        private static final long serialVersionUID = 0L;

        @java.lang.Override
        protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
          return super.writeReplace();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .Process
            parseFrom(com.google.protobuf.ByteString data)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .Process
            parseFrom(
                com.google.protobuf.ByteString data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .Process
            parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .Process
            parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .Process
            parseFrom(java.io.InputStream input) throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .Process
            parseFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .Process
            parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .Process
            parseDelimitedFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .Process
            parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .Process
            parseFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
        }

        public static Builder newBuilder() {
          return Builder.create();
        }

        public Builder newBuilderForType() {
          return newBuilder();
        }

        public static Builder newBuilder(
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application.Process
                prototype) {
          return newBuilder().mergeFrom(prototype);
        }

        public Builder toBuilder() {
          return newBuilder(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }

        public static final class Builder
            extends com.google.protobuf.GeneratedMessage.Builder<Builder>
            implements com.google.firebase.crashlytics.device.session.Crashlytics.Session
                .Application.ProcessOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return com.google.firebase.crashlytics.device.session.Crashlytics
                .internal_static_Crashlytics_Session_Application_Process_descriptor;
          }

          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return com.google.firebase.crashlytics.device.session.Crashlytics
                .internal_static_Crashlytics_Session_Application_Process_fieldAccessorTable;
          }

          // Construct using
          // com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application.Process.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }

          private Builder(BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }

          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {}
          }

          private static Builder create() {
            return new Builder();
          }

          public Builder clear() {
            super.clear();
            name_ = "";
            bitField0_ = (bitField0_ & ~0x00000001);
            pid_ = 0;
            bitField0_ = (bitField0_ & ~0x00000002);
            path_ = "";
            bitField0_ = (bitField0_ & ~0x00000004);
            parentProcessName_ = "";
            bitField0_ = (bitField0_ & ~0x00000008);
            parentProcessId_ = 0;
            bitField0_ = (bitField0_ & ~0x00000010);
            return this;
          }

          public Builder clone() {
            return create().mergeFrom(buildPartial());
          }

          public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
            return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .Process.getDescriptor();
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                  .Process
              getDefaultInstanceForType() {
            return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .Process.getDefaultInstance();
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                  .Process
              build() {
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application.Process
                result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                  .Process
              buildParsed() throws com.google.protobuf.InvalidProtocolBufferException {
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application.Process
                result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result).asInvalidProtocolBufferException();
            }
            return result;
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                  .Process
              buildPartial() {
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application.Process
                result =
                    new com.google.firebase.crashlytics.device.session.Crashlytics.Session
                        .Application.Process(this);
            int from_bitField0_ = bitField0_;
            int to_bitField0_ = 0;
            if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
              to_bitField0_ |= 0x00000001;
            }
            result.name_ = name_;
            if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
              to_bitField0_ |= 0x00000002;
            }
            result.pid_ = pid_;
            if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
              to_bitField0_ |= 0x00000004;
            }
            result.path_ = path_;
            if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
              to_bitField0_ |= 0x00000008;
            }
            result.parentProcessName_ = parentProcessName_;
            if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
              to_bitField0_ |= 0x00000010;
            }
            result.parentProcessId_ = parentProcessId_;
            result.bitField0_ = to_bitField0_;
            onBuilt();
            return result;
          }

          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other
                instanceof
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .Process) {
              return mergeFrom(
                  (com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                          .Process)
                      other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application.Process
                  other) {
            if (other
                == com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .Process.getDefaultInstance()) return this;
            if (other.hasName()) {
              setName(other.getName());
            }
            if (other.hasPid()) {
              setPid(other.getPid());
            }
            if (other.hasPath()) {
              setPath(other.getPath());
            }
            if (other.hasParentProcessName()) {
              setParentProcessName(other.getParentProcessName());
            }
            if (other.hasParentProcessId()) {
              setParentProcessId(other.getParentProcessId());
            }
            this.mergeUnknownFields(other.getUnknownFields());
            return this;
          }

          public final boolean isInitialized() {
            if (!hasPid()) {

              return false;
            }
            return true;
          }

          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                com.google.protobuf.UnknownFieldSet.newBuilder(this.getUnknownFields());
            while (true) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                default:
                  {
                    if (!parseUnknownField(
                        input, unknownFields,
                        extensionRegistry, tag)) {
                      this.setUnknownFields(unknownFields.build());
                      onChanged();
                      return this;
                    }
                    break;
                  }
                case 10:
                  {
                    bitField0_ |= 0x00000001;
                    name_ = input.readBytes();
                    break;
                  }
                case 16:
                  {
                    bitField0_ |= 0x00000002;
                    pid_ = input.readUInt32();
                    break;
                  }
                case 26:
                  {
                    bitField0_ |= 0x00000004;
                    path_ = input.readBytes();
                    break;
                  }
                case 34:
                  {
                    bitField0_ |= 0x00000008;
                    parentProcessName_ = input.readBytes();
                    break;
                  }
                case 40:
                  {
                    bitField0_ |= 0x00000010;
                    parentProcessId_ = input.readUInt32();
                    break;
                  }
              }
            }
          }

          private int bitField0_;

          // optional string name = 1;
          private java.lang.Object name_ = "";

          public boolean hasName() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }

          public String getName() {
            java.lang.Object ref = name_;
            if (!(ref instanceof String)) {
              String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
              name_ = s;
              return s;
            } else {
              return (String) ref;
            }
          }

          public Builder setName(String value) {
            if (value == null) {
              throw new NullPointerException();
            }
            bitField0_ |= 0x00000001;
            name_ = value;
            onChanged();
            return this;
          }

          public Builder clearName() {
            bitField0_ = (bitField0_ & ~0x00000001);
            name_ = getDefaultInstance().getName();
            onChanged();
            return this;
          }

          void setName(com.google.protobuf.ByteString value) {
            bitField0_ |= 0x00000001;
            name_ = value;
            onChanged();
          }

          // required uint32 pid = 2;
          private int pid_;

          public boolean hasPid() {
            return ((bitField0_ & 0x00000002) == 0x00000002);
          }

          public int getPid() {
            return pid_;
          }

          public Builder setPid(int value) {
            bitField0_ |= 0x00000002;
            pid_ = value;
            onChanged();
            return this;
          }

          public Builder clearPid() {
            bitField0_ = (bitField0_ & ~0x00000002);
            pid_ = 0;
            onChanged();
            return this;
          }

          // optional string path = 3;
          private java.lang.Object path_ = "";

          public boolean hasPath() {
            return ((bitField0_ & 0x00000004) == 0x00000004);
          }

          public String getPath() {
            java.lang.Object ref = path_;
            if (!(ref instanceof String)) {
              String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
              path_ = s;
              return s;
            } else {
              return (String) ref;
            }
          }

          public Builder setPath(String value) {
            if (value == null) {
              throw new NullPointerException();
            }
            bitField0_ |= 0x00000004;
            path_ = value;
            onChanged();
            return this;
          }

          public Builder clearPath() {
            bitField0_ = (bitField0_ & ~0x00000004);
            path_ = getDefaultInstance().getPath();
            onChanged();
            return this;
          }

          void setPath(com.google.protobuf.ByteString value) {
            bitField0_ |= 0x00000004;
            path_ = value;
            onChanged();
          }

          // optional string parent_process_name = 4;
          private java.lang.Object parentProcessName_ = "";

          public boolean hasParentProcessName() {
            return ((bitField0_ & 0x00000008) == 0x00000008);
          }

          public String getParentProcessName() {
            java.lang.Object ref = parentProcessName_;
            if (!(ref instanceof String)) {
              String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
              parentProcessName_ = s;
              return s;
            } else {
              return (String) ref;
            }
          }

          public Builder setParentProcessName(String value) {
            if (value == null) {
              throw new NullPointerException();
            }
            bitField0_ |= 0x00000008;
            parentProcessName_ = value;
            onChanged();
            return this;
          }

          public Builder clearParentProcessName() {
            bitField0_ = (bitField0_ & ~0x00000008);
            parentProcessName_ = getDefaultInstance().getParentProcessName();
            onChanged();
            return this;
          }

          void setParentProcessName(com.google.protobuf.ByteString value) {
            bitField0_ |= 0x00000008;
            parentProcessName_ = value;
            onChanged();
          }

          // optional uint32 parent_process_id = 5;
          private int parentProcessId_;

          public boolean hasParentProcessId() {
            return ((bitField0_ & 0x00000010) == 0x00000010);
          }

          public int getParentProcessId() {
            return parentProcessId_;
          }

          public Builder setParentProcessId(int value) {
            bitField0_ |= 0x00000010;
            parentProcessId_ = value;
            onChanged();
            return this;
          }

          public Builder clearParentProcessId() {
            bitField0_ = (bitField0_ & ~0x00000010);
            parentProcessId_ = 0;
            onChanged();
            return this;
          }

          // @@protoc_insertion_point(builder_scope:Crashlytics.Session.Application.Process)
        }

        static {
          defaultInstance = new Process(true);
          defaultInstance.initFields();
        }

        // @@protoc_insertion_point(class_scope:Crashlytics.Session.Application.Process)
      }

      public interface OrganizationOrBuilder extends com.google.protobuf.MessageOrBuilder {

        // optional string api_key = 1;
        boolean hasApiKey();

        String getApiKey();

        // optional string cls_id = 2;
        boolean hasClsId();

        String getClsId();
      }

      public static final class Organization extends com.google.protobuf.GeneratedMessage
          implements OrganizationOrBuilder {
        // Use Organization.newBuilder() to construct.
        private Organization(Builder builder) {
          super(builder);
        }

        private Organization(boolean noInit) {}

        private static final Organization defaultInstance;

        public static Organization getDefaultInstance() {
          return defaultInstance;
        }

        public Organization getDefaultInstanceForType() {
          return defaultInstance;
        }

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
          return com.google.firebase.crashlytics.device.session.Crashlytics
              .internal_static_Crashlytics_Session_Application_Organization_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.firebase.crashlytics.device.session.Crashlytics
              .internal_static_Crashlytics_Session_Application_Organization_fieldAccessorTable;
        }

        private int bitField0_;
        // optional string api_key = 1;
        public static final int API_KEY_FIELD_NUMBER = 1;
        private java.lang.Object apiKey_;

        public boolean hasApiKey() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }

        public String getApiKey() {
          java.lang.Object ref = apiKey_;
          if (ref instanceof String) {
            return (String) ref;
          } else {
            com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
            String s = bs.toStringUtf8();
            if (com.google.protobuf.Internal.isValidUtf8(bs)) {
              apiKey_ = s;
            }
            return s;
          }
        }

        private com.google.protobuf.ByteString getApiKeyBytes() {
          java.lang.Object ref = apiKey_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b =
                com.google.protobuf.ByteString.copyFromUtf8((String) ref);
            apiKey_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }

        // optional string cls_id = 2;
        public static final int CLS_ID_FIELD_NUMBER = 2;
        private java.lang.Object clsId_;

        public boolean hasClsId() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }

        public String getClsId() {
          java.lang.Object ref = clsId_;
          if (ref instanceof String) {
            return (String) ref;
          } else {
            com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
            String s = bs.toStringUtf8();
            if (com.google.protobuf.Internal.isValidUtf8(bs)) {
              clsId_ = s;
            }
            return s;
          }
        }

        private com.google.protobuf.ByteString getClsIdBytes() {
          java.lang.Object ref = clsId_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b =
                com.google.protobuf.ByteString.copyFromUtf8((String) ref);
            clsId_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }

        private void initFields() {
          apiKey_ = "";
          clsId_ = "";
        }

        private byte memoizedIsInitialized = -1;

        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized != -1) return isInitialized == 1;

          memoizedIsInitialized = 1;
          return true;
        }

        public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
          getSerializedSize();
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            output.writeBytes(1, getApiKeyBytes());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            output.writeBytes(2, getClsIdBytes());
          }
          getUnknownFields().writeTo(output);
        }

        private int memoizedSerializedSize = -1;

        public int getSerializedSize() {
          int size = memoizedSerializedSize;
          if (size != -1) return size;

          size = 0;
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            size += com.google.protobuf.CodedOutputStream.computeBytesSize(1, getApiKeyBytes());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            size += com.google.protobuf.CodedOutputStream.computeBytesSize(2, getClsIdBytes());
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSerializedSize = size;
          return size;
        }

        private static final long serialVersionUID = 0L;

        @java.lang.Override
        protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
          return super.writeReplace();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .Organization
            parseFrom(com.google.protobuf.ByteString data)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .Organization
            parseFrom(
                com.google.protobuf.ByteString data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .Organization
            parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .Organization
            parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .Organization
            parseFrom(java.io.InputStream input) throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .Organization
            parseFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .Organization
            parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .Organization
            parseDelimitedFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .Organization
            parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .Organization
            parseFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
        }

        public static Builder newBuilder() {
          return Builder.create();
        }

        public Builder newBuilderForType() {
          return newBuilder();
        }

        public static Builder newBuilder(
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .Organization
                prototype) {
          return newBuilder().mergeFrom(prototype);
        }

        public Builder toBuilder() {
          return newBuilder(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }

        public static final class Builder
            extends com.google.protobuf.GeneratedMessage.Builder<Builder>
            implements com.google.firebase.crashlytics.device.session.Crashlytics.Session
                .Application.OrganizationOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return com.google.firebase.crashlytics.device.session.Crashlytics
                .internal_static_Crashlytics_Session_Application_Organization_descriptor;
          }

          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return com.google.firebase.crashlytics.device.session.Crashlytics
                .internal_static_Crashlytics_Session_Application_Organization_fieldAccessorTable;
          }

          // Construct using
          // com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application.Organization.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }

          private Builder(BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }

          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {}
          }

          private static Builder create() {
            return new Builder();
          }

          public Builder clear() {
            super.clear();
            apiKey_ = "";
            bitField0_ = (bitField0_ & ~0x00000001);
            clsId_ = "";
            bitField0_ = (bitField0_ & ~0x00000002);
            return this;
          }

          public Builder clone() {
            return create().mergeFrom(buildPartial());
          }

          public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
            return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .Organization.getDescriptor();
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                  .Organization
              getDefaultInstanceForType() {
            return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .Organization.getDefaultInstance();
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                  .Organization
              build() {
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .Organization
                result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                  .Organization
              buildParsed() throws com.google.protobuf.InvalidProtocolBufferException {
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .Organization
                result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result).asInvalidProtocolBufferException();
            }
            return result;
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                  .Organization
              buildPartial() {
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .Organization
                result =
                    new com.google.firebase.crashlytics.device.session.Crashlytics.Session
                        .Application.Organization(this);
            int from_bitField0_ = bitField0_;
            int to_bitField0_ = 0;
            if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
              to_bitField0_ |= 0x00000001;
            }
            result.apiKey_ = apiKey_;
            if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
              to_bitField0_ |= 0x00000002;
            }
            result.clsId_ = clsId_;
            result.bitField0_ = to_bitField0_;
            onBuilt();
            return result;
          }

          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other
                instanceof
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .Organization) {
              return mergeFrom(
                  (com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                          .Organization)
                      other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                      .Organization
                  other) {
            if (other
                == com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .Organization.getDefaultInstance()) return this;
            if (other.hasApiKey()) {
              setApiKey(other.getApiKey());
            }
            if (other.hasClsId()) {
              setClsId(other.getClsId());
            }
            this.mergeUnknownFields(other.getUnknownFields());
            return this;
          }

          public final boolean isInitialized() {
            return true;
          }

          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                com.google.protobuf.UnknownFieldSet.newBuilder(this.getUnknownFields());
            while (true) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                default:
                  {
                    if (!parseUnknownField(
                        input, unknownFields,
                        extensionRegistry, tag)) {
                      this.setUnknownFields(unknownFields.build());
                      onChanged();
                      return this;
                    }
                    break;
                  }
                case 10:
                  {
                    bitField0_ |= 0x00000001;
                    apiKey_ = input.readBytes();
                    break;
                  }
                case 18:
                  {
                    bitField0_ |= 0x00000002;
                    clsId_ = input.readBytes();
                    break;
                  }
              }
            }
          }

          private int bitField0_;

          // optional string api_key = 1;
          private java.lang.Object apiKey_ = "";

          public boolean hasApiKey() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }

          public String getApiKey() {
            java.lang.Object ref = apiKey_;
            if (!(ref instanceof String)) {
              String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
              apiKey_ = s;
              return s;
            } else {
              return (String) ref;
            }
          }

          public Builder setApiKey(String value) {
            if (value == null) {
              throw new NullPointerException();
            }
            bitField0_ |= 0x00000001;
            apiKey_ = value;
            onChanged();
            return this;
          }

          public Builder clearApiKey() {
            bitField0_ = (bitField0_ & ~0x00000001);
            apiKey_ = getDefaultInstance().getApiKey();
            onChanged();
            return this;
          }

          void setApiKey(com.google.protobuf.ByteString value) {
            bitField0_ |= 0x00000001;
            apiKey_ = value;
            onChanged();
          }

          // optional string cls_id = 2;
          private java.lang.Object clsId_ = "";

          public boolean hasClsId() {
            return ((bitField0_ & 0x00000002) == 0x00000002);
          }

          public String getClsId() {
            java.lang.Object ref = clsId_;
            if (!(ref instanceof String)) {
              String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
              clsId_ = s;
              return s;
            } else {
              return (String) ref;
            }
          }

          public Builder setClsId(String value) {
            if (value == null) {
              throw new NullPointerException();
            }
            bitField0_ |= 0x00000002;
            clsId_ = value;
            onChanged();
            return this;
          }

          public Builder clearClsId() {
            bitField0_ = (bitField0_ & ~0x00000002);
            clsId_ = getDefaultInstance().getClsId();
            onChanged();
            return this;
          }

          void setClsId(com.google.protobuf.ByteString value) {
            bitField0_ |= 0x00000002;
            clsId_ = value;
            onChanged();
          }

          // @@protoc_insertion_point(builder_scope:Crashlytics.Session.Application.Organization)
        }

        static {
          defaultInstance = new Organization(true);
          defaultInstance.initFields();
        }

        // @@protoc_insertion_point(class_scope:Crashlytics.Session.Application.Organization)
      }

      private int bitField0_;
      // required string identifier = 1;
      public static final int IDENTIFIER_FIELD_NUMBER = 1;
      private java.lang.Object identifier_;

      public boolean hasIdentifier() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }

      public String getIdentifier() {
        java.lang.Object ref = identifier_;
        if (ref instanceof String) {
          return (String) ref;
        } else {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (com.google.protobuf.Internal.isValidUtf8(bs)) {
            identifier_ = s;
          }
          return s;
        }
      }

      private com.google.protobuf.ByteString getIdentifierBytes() {
        java.lang.Object ref = identifier_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
          identifier_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      // required string version = 2;
      public static final int VERSION_FIELD_NUMBER = 2;
      private java.lang.Object version_;

      public boolean hasVersion() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }

      public String getVersion() {
        java.lang.Object ref = version_;
        if (ref instanceof String) {
          return (String) ref;
        } else {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (com.google.protobuf.Internal.isValidUtf8(bs)) {
            version_ = s;
          }
          return s;
        }
      }

      private com.google.protobuf.ByteString getVersionBytes() {
        java.lang.Object ref = version_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
          version_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      // optional string display_version = 3;
      public static final int DISPLAY_VERSION_FIELD_NUMBER = 3;
      private java.lang.Object displayVersion_;

      public boolean hasDisplayVersion() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }

      public String getDisplayVersion() {
        java.lang.Object ref = displayVersion_;
        if (ref instanceof String) {
          return (String) ref;
        } else {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (com.google.protobuf.Internal.isValidUtf8(bs)) {
            displayVersion_ = s;
          }
          return s;
        }
      }

      private com.google.protobuf.ByteString getDisplayVersionBytes() {
        java.lang.Object ref = displayVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
          displayVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      // optional string installation_uuid = 6;
      public static final int INSTALLATION_UUID_FIELD_NUMBER = 6;
      private java.lang.Object installationUuid_;

      public boolean hasInstallationUuid() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }

      public String getInstallationUuid() {
        java.lang.Object ref = installationUuid_;
        if (ref instanceof String) {
          return (String) ref;
        } else {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (com.google.protobuf.Internal.isValidUtf8(bs)) {
            installationUuid_ = s;
          }
          return s;
        }
      }

      private com.google.protobuf.ByteString getInstallationUuidBytes() {
        java.lang.Object ref = installationUuid_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
          installationUuid_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      // optional string cls_id = 7;
      public static final int CLS_ID_FIELD_NUMBER = 7;
      private java.lang.Object clsId_;

      public boolean hasClsId() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }

      public String getClsId() {
        java.lang.Object ref = clsId_;
        if (ref instanceof String) {
          return (String) ref;
        } else {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (com.google.protobuf.Internal.isValidUtf8(bs)) {
            clsId_ = s;
          }
          return s;
        }
      }

      private com.google.protobuf.ByteString getClsIdBytes() {
        java.lang.Object ref = clsId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
          clsId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      // optional string development_platform = 8;
      public static final int DEVELOPMENT_PLATFORM_FIELD_NUMBER = 8;
      private java.lang.Object developmentPlatform_;

      public boolean hasDevelopmentPlatform() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }

      public String getDevelopmentPlatform() {
        java.lang.Object ref = developmentPlatform_;
        if (ref instanceof String) {
          return (String) ref;
        } else {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (com.google.protobuf.Internal.isValidUtf8(bs)) {
            developmentPlatform_ = s;
          }
          return s;
        }
      }

      private com.google.protobuf.ByteString getDevelopmentPlatformBytes() {
        java.lang.Object ref = developmentPlatform_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
          developmentPlatform_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      // optional string development_platform_version = 9;
      public static final int DEVELOPMENT_PLATFORM_VERSION_FIELD_NUMBER = 9;
      private java.lang.Object developmentPlatformVersion_;

      public boolean hasDevelopmentPlatformVersion() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }

      public String getDevelopmentPlatformVersion() {
        java.lang.Object ref = developmentPlatformVersion_;
        if (ref instanceof String) {
          return (String) ref;
        } else {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (com.google.protobuf.Internal.isValidUtf8(bs)) {
            developmentPlatformVersion_ = s;
          }
          return s;
        }
      }

      private com.google.protobuf.ByteString getDevelopmentPlatformVersionBytes() {
        java.lang.Object ref = developmentPlatformVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
          developmentPlatformVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      // optional .Crashlytics.DeliveryMechanism delivery_mechanism = 10;
      public static final int DELIVERY_MECHANISM_FIELD_NUMBER = 10;
      private com.google.firebase.crashlytics.device.session.Crashlytics.DeliveryMechanism
          deliveryMechanism_;

      public boolean hasDeliveryMechanism() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.DeliveryMechanism
          getDeliveryMechanism() {
        return deliveryMechanism_;
      }

      // optional .Crashlytics.Session.Application.Process process = 4;
      public static final int PROCESS_FIELD_NUMBER = 4;
      private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application.Process
          process_;

      public boolean hasProcess() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application.Process
          getProcess() {
        return process_;
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
              .ProcessOrBuilder
          getProcessOrBuilder() {
        return process_;
      }

      // optional .Crashlytics.Session.Application.Organization organization = 5;
      public static final int ORGANIZATION_FIELD_NUMBER = 5;
      private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
              .Organization
          organization_;

      public boolean hasOrganization() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
              .Organization
          getOrganization() {
        return organization_;
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
              .OrganizationOrBuilder
          getOrganizationOrBuilder() {
        return organization_;
      }

      private void initFields() {
        identifier_ = "";
        version_ = "";
        displayVersion_ = "";
        installationUuid_ = "";
        clsId_ = "";
        developmentPlatform_ = "";
        developmentPlatformVersion_ = "";
        deliveryMechanism_ =
            com.google.firebase.crashlytics.device.session.Crashlytics.DeliveryMechanism.DEVELOPER;
        process_ =
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application.Process
                .getDefaultInstance();
        organization_ =
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .Organization.getDefaultInstance();
      }

      private byte memoizedIsInitialized = -1;

      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        if (!hasIdentifier()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasVersion()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (hasProcess()) {
          if (!getProcess().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBytes(1, getIdentifierBytes());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeBytes(2, getVersionBytes());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeBytes(3, getDisplayVersionBytes());
        }
        if (((bitField0_ & 0x00000100) == 0x00000100)) {
          output.writeMessage(4, process_);
        }
        if (((bitField0_ & 0x00000200) == 0x00000200)) {
          output.writeMessage(5, organization_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeBytes(6, getInstallationUuidBytes());
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          output.writeBytes(7, getClsIdBytes());
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          output.writeBytes(8, getDevelopmentPlatformBytes());
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          output.writeBytes(9, getDevelopmentPlatformVersionBytes());
        }
        if (((bitField0_ & 0x00000080) == 0x00000080)) {
          output.writeEnum(10, deliveryMechanism_.getNumber());
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;

      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream.computeBytesSize(1, getIdentifierBytes());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream.computeBytesSize(2, getVersionBytes());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size +=
              com.google.protobuf.CodedOutputStream.computeBytesSize(3, getDisplayVersionBytes());
        }
        if (((bitField0_ & 0x00000100) == 0x00000100)) {
          size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, process_);
        }
        if (((bitField0_ & 0x00000200) == 0x00000200)) {
          size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, organization_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size +=
              com.google.protobuf.CodedOutputStream.computeBytesSize(6, getInstallationUuidBytes());
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          size += com.google.protobuf.CodedOutputStream.computeBytesSize(7, getClsIdBytes());
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          size +=
              com.google.protobuf.CodedOutputStream.computeBytesSize(
                  8, getDevelopmentPlatformBytes());
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          size +=
              com.google.protobuf.CodedOutputStream.computeBytesSize(
                  9, getDevelopmentPlatformVersionBytes());
        }
        if (((bitField0_ & 0x00000080) == 0x00000080)) {
          size +=
              com.google.protobuf.CodedOutputStream.computeEnumSize(
                  10, deliveryMechanism_.getNumber());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;

      @java.lang.Override
      protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
          parseFrom(com.google.protobuf.ByteString data)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
          parseFrom(
              com.google.protobuf.ByteString data,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
          parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
          parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
          parseFrom(java.io.InputStream input) throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
          parseFrom(
              java.io.InputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
          parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
          parseDelimitedFrom(
              java.io.InputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
          parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
          parseFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
      }

      public static Builder newBuilder() {
        return Builder.create();
      }

      public Builder newBuilderForType() {
        return newBuilder();
      }

      public static Builder newBuilder(
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
              prototype) {
        return newBuilder().mergeFrom(prototype);
      }

      public Builder toBuilder() {
        return newBuilder(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }

      public static final class Builder
          extends com.google.protobuf.GeneratedMessage.Builder<Builder>
          implements com.google.firebase.crashlytics.device.session.Crashlytics.Session
              .ApplicationOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
          return com.google.firebase.crashlytics.device.session.Crashlytics
              .internal_static_Crashlytics_Session_Application_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.firebase.crashlytics.device.session.Crashlytics
              .internal_static_Crashlytics_Session_Application_fieldAccessorTable;
        }

        // Construct using
        // com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }

        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getProcessFieldBuilder();
            getOrganizationFieldBuilder();
          }
        }

        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          identifier_ = "";
          bitField0_ = (bitField0_ & ~0x00000001);
          version_ = "";
          bitField0_ = (bitField0_ & ~0x00000002);
          displayVersion_ = "";
          bitField0_ = (bitField0_ & ~0x00000004);
          installationUuid_ = "";
          bitField0_ = (bitField0_ & ~0x00000008);
          clsId_ = "";
          bitField0_ = (bitField0_ & ~0x00000010);
          developmentPlatform_ = "";
          bitField0_ = (bitField0_ & ~0x00000020);
          developmentPlatformVersion_ = "";
          bitField0_ = (bitField0_ & ~0x00000040);
          deliveryMechanism_ =
              com.google.firebase.crashlytics.device.session.Crashlytics.DeliveryMechanism
                  .DEVELOPER;
          bitField0_ = (bitField0_ & ~0x00000080);
          if (processBuilder_ == null) {
            process_ =
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .Process.getDefaultInstance();
          } else {
            processBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000100);
          if (organizationBuilder_ == null) {
            organization_ =
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .Organization.getDefaultInstance();
          } else {
            organizationBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000200);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
          return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
              .getDescriptor();
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
            getDefaultInstanceForType() {
          return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
              .getDefaultInstance();
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
            build() {
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application result =
              buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
            buildParsed() throws com.google.protobuf.InvalidProtocolBufferException {
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application result =
              buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result).asInvalidProtocolBufferException();
          }
          return result;
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
            buildPartial() {
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application result =
              new com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application(
                  this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.identifier_ = identifier_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.version_ = version_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.displayVersion_ = displayVersion_;
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          result.installationUuid_ = installationUuid_;
          if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
            to_bitField0_ |= 0x00000010;
          }
          result.clsId_ = clsId_;
          if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
            to_bitField0_ |= 0x00000020;
          }
          result.developmentPlatform_ = developmentPlatform_;
          if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
            to_bitField0_ |= 0x00000040;
          }
          result.developmentPlatformVersion_ = developmentPlatformVersion_;
          if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
            to_bitField0_ |= 0x00000080;
          }
          result.deliveryMechanism_ = deliveryMechanism_;
          if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
            to_bitField0_ |= 0x00000100;
          }
          if (processBuilder_ == null) {
            result.process_ = process_;
          } else {
            result.process_ = processBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
            to_bitField0_ |= 0x00000200;
          }
          if (organizationBuilder_ == null) {
            result.organization_ = organization_;
          } else {
            result.organization_ = organizationBuilder_.build();
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other
              instanceof
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application) {
            return mergeFrom(
                (com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application)
                    other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application other) {
          if (other
              == com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                  .getDefaultInstance()) return this;
          if (other.hasIdentifier()) {
            setIdentifier(other.getIdentifier());
          }
          if (other.hasVersion()) {
            setVersion(other.getVersion());
          }
          if (other.hasDisplayVersion()) {
            setDisplayVersion(other.getDisplayVersion());
          }
          if (other.hasInstallationUuid()) {
            setInstallationUuid(other.getInstallationUuid());
          }
          if (other.hasClsId()) {
            setClsId(other.getClsId());
          }
          if (other.hasDevelopmentPlatform()) {
            setDevelopmentPlatform(other.getDevelopmentPlatform());
          }
          if (other.hasDevelopmentPlatformVersion()) {
            setDevelopmentPlatformVersion(other.getDevelopmentPlatformVersion());
          }
          if (other.hasDeliveryMechanism()) {
            setDeliveryMechanism(other.getDeliveryMechanism());
          }
          if (other.hasProcess()) {
            mergeProcess(other.getProcess());
          }
          if (other.hasOrganization()) {
            mergeOrganization(other.getOrganization());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          if (!hasIdentifier()) {

            return false;
          }
          if (!hasVersion()) {

            return false;
          }
          if (hasProcess()) {
            if (!getProcess().isInitialized()) {

              return false;
            }
          }
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder(this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              default:
                {
                  if (!parseUnknownField(
                      input, unknownFields,
                      extensionRegistry, tag)) {
                    this.setUnknownFields(unknownFields.build());
                    onChanged();
                    return this;
                  }
                  break;
                }
              case 10:
                {
                  bitField0_ |= 0x00000001;
                  identifier_ = input.readBytes();
                  break;
                }
              case 18:
                {
                  bitField0_ |= 0x00000002;
                  version_ = input.readBytes();
                  break;
                }
              case 26:
                {
                  bitField0_ |= 0x00000004;
                  displayVersion_ = input.readBytes();
                  break;
                }
              case 34:
                {
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                          .Process.Builder
                      subBuilder =
                          com.google.firebase.crashlytics.device.session.Crashlytics.Session
                              .Application.Process.newBuilder();
                  if (hasProcess()) {
                    subBuilder.mergeFrom(getProcess());
                  }
                  input.readMessage(subBuilder, extensionRegistry);
                  setProcess(subBuilder.buildPartial());
                  break;
                }
              case 42:
                {
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                          .Organization.Builder
                      subBuilder =
                          com.google.firebase.crashlytics.device.session.Crashlytics.Session
                              .Application.Organization.newBuilder();
                  if (hasOrganization()) {
                    subBuilder.mergeFrom(getOrganization());
                  }
                  input.readMessage(subBuilder, extensionRegistry);
                  setOrganization(subBuilder.buildPartial());
                  break;
                }
              case 50:
                {
                  bitField0_ |= 0x00000008;
                  installationUuid_ = input.readBytes();
                  break;
                }
              case 58:
                {
                  bitField0_ |= 0x00000010;
                  clsId_ = input.readBytes();
                  break;
                }
              case 66:
                {
                  bitField0_ |= 0x00000020;
                  developmentPlatform_ = input.readBytes();
                  break;
                }
              case 74:
                {
                  bitField0_ |= 0x00000040;
                  developmentPlatformVersion_ = input.readBytes();
                  break;
                }
              case 80:
                {
                  int rawValue = input.readEnum();
                  com.google.firebase.crashlytics.device.session.Crashlytics.DeliveryMechanism
                      value =
                          com.google.firebase.crashlytics.device.session.Crashlytics
                              .DeliveryMechanism.valueOf(rawValue);
                  if (value == null) {
                    unknownFields.mergeVarintField(10, rawValue);
                  } else {
                    bitField0_ |= 0x00000080;
                    deliveryMechanism_ = value;
                  }
                  break;
                }
            }
          }
        }

        private int bitField0_;

        // required string identifier = 1;
        private java.lang.Object identifier_ = "";

        public boolean hasIdentifier() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }

        public String getIdentifier() {
          java.lang.Object ref = identifier_;
          if (!(ref instanceof String)) {
            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
            identifier_ = s;
            return s;
          } else {
            return (String) ref;
          }
        }

        public Builder setIdentifier(String value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000001;
          identifier_ = value;
          onChanged();
          return this;
        }

        public Builder clearIdentifier() {
          bitField0_ = (bitField0_ & ~0x00000001);
          identifier_ = getDefaultInstance().getIdentifier();
          onChanged();
          return this;
        }

        void setIdentifier(com.google.protobuf.ByteString value) {
          bitField0_ |= 0x00000001;
          identifier_ = value;
          onChanged();
        }

        // required string version = 2;
        private java.lang.Object version_ = "";

        public boolean hasVersion() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }

        public String getVersion() {
          java.lang.Object ref = version_;
          if (!(ref instanceof String)) {
            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
            version_ = s;
            return s;
          } else {
            return (String) ref;
          }
        }

        public Builder setVersion(String value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000002;
          version_ = value;
          onChanged();
          return this;
        }

        public Builder clearVersion() {
          bitField0_ = (bitField0_ & ~0x00000002);
          version_ = getDefaultInstance().getVersion();
          onChanged();
          return this;
        }

        void setVersion(com.google.protobuf.ByteString value) {
          bitField0_ |= 0x00000002;
          version_ = value;
          onChanged();
        }

        // optional string display_version = 3;
        private java.lang.Object displayVersion_ = "";

        public boolean hasDisplayVersion() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }

        public String getDisplayVersion() {
          java.lang.Object ref = displayVersion_;
          if (!(ref instanceof String)) {
            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
            displayVersion_ = s;
            return s;
          } else {
            return (String) ref;
          }
        }

        public Builder setDisplayVersion(String value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000004;
          displayVersion_ = value;
          onChanged();
          return this;
        }

        public Builder clearDisplayVersion() {
          bitField0_ = (bitField0_ & ~0x00000004);
          displayVersion_ = getDefaultInstance().getDisplayVersion();
          onChanged();
          return this;
        }

        void setDisplayVersion(com.google.protobuf.ByteString value) {
          bitField0_ |= 0x00000004;
          displayVersion_ = value;
          onChanged();
        }

        // optional string installation_uuid = 6;
        private java.lang.Object installationUuid_ = "";

        public boolean hasInstallationUuid() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }

        public String getInstallationUuid() {
          java.lang.Object ref = installationUuid_;
          if (!(ref instanceof String)) {
            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
            installationUuid_ = s;
            return s;
          } else {
            return (String) ref;
          }
        }

        public Builder setInstallationUuid(String value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000008;
          installationUuid_ = value;
          onChanged();
          return this;
        }

        public Builder clearInstallationUuid() {
          bitField0_ = (bitField0_ & ~0x00000008);
          installationUuid_ = getDefaultInstance().getInstallationUuid();
          onChanged();
          return this;
        }

        void setInstallationUuid(com.google.protobuf.ByteString value) {
          bitField0_ |= 0x00000008;
          installationUuid_ = value;
          onChanged();
        }

        // optional string cls_id = 7;
        private java.lang.Object clsId_ = "";

        public boolean hasClsId() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }

        public String getClsId() {
          java.lang.Object ref = clsId_;
          if (!(ref instanceof String)) {
            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
            clsId_ = s;
            return s;
          } else {
            return (String) ref;
          }
        }

        public Builder setClsId(String value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000010;
          clsId_ = value;
          onChanged();
          return this;
        }

        public Builder clearClsId() {
          bitField0_ = (bitField0_ & ~0x00000010);
          clsId_ = getDefaultInstance().getClsId();
          onChanged();
          return this;
        }

        void setClsId(com.google.protobuf.ByteString value) {
          bitField0_ |= 0x00000010;
          clsId_ = value;
          onChanged();
        }

        // optional string development_platform = 8;
        private java.lang.Object developmentPlatform_ = "";

        public boolean hasDevelopmentPlatform() {
          return ((bitField0_ & 0x00000020) == 0x00000020);
        }

        public String getDevelopmentPlatform() {
          java.lang.Object ref = developmentPlatform_;
          if (!(ref instanceof String)) {
            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
            developmentPlatform_ = s;
            return s;
          } else {
            return (String) ref;
          }
        }

        public Builder setDevelopmentPlatform(String value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000020;
          developmentPlatform_ = value;
          onChanged();
          return this;
        }

        public Builder clearDevelopmentPlatform() {
          bitField0_ = (bitField0_ & ~0x00000020);
          developmentPlatform_ = getDefaultInstance().getDevelopmentPlatform();
          onChanged();
          return this;
        }

        void setDevelopmentPlatform(com.google.protobuf.ByteString value) {
          bitField0_ |= 0x00000020;
          developmentPlatform_ = value;
          onChanged();
        }

        // optional string development_platform_version = 9;
        private java.lang.Object developmentPlatformVersion_ = "";

        public boolean hasDevelopmentPlatformVersion() {
          return ((bitField0_ & 0x00000040) == 0x00000040);
        }

        public String getDevelopmentPlatformVersion() {
          java.lang.Object ref = developmentPlatformVersion_;
          if (!(ref instanceof String)) {
            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
            developmentPlatformVersion_ = s;
            return s;
          } else {
            return (String) ref;
          }
        }

        public Builder setDevelopmentPlatformVersion(String value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000040;
          developmentPlatformVersion_ = value;
          onChanged();
          return this;
        }

        public Builder clearDevelopmentPlatformVersion() {
          bitField0_ = (bitField0_ & ~0x00000040);
          developmentPlatformVersion_ = getDefaultInstance().getDevelopmentPlatformVersion();
          onChanged();
          return this;
        }

        void setDevelopmentPlatformVersion(com.google.protobuf.ByteString value) {
          bitField0_ |= 0x00000040;
          developmentPlatformVersion_ = value;
          onChanged();
        }

        // optional .Crashlytics.DeliveryMechanism delivery_mechanism = 10;
        private com.google.firebase.crashlytics.device.session.Crashlytics.DeliveryMechanism
            deliveryMechanism_ =
                com.google.firebase.crashlytics.device.session.Crashlytics.DeliveryMechanism
                    .DEVELOPER;

        public boolean hasDeliveryMechanism() {
          return ((bitField0_ & 0x00000080) == 0x00000080);
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.DeliveryMechanism
            getDeliveryMechanism() {
          return deliveryMechanism_;
        }

        public Builder setDeliveryMechanism(
            com.google.firebase.crashlytics.device.session.Crashlytics.DeliveryMechanism value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000080;
          deliveryMechanism_ = value;
          onChanged();
          return this;
        }

        public Builder clearDeliveryMechanism() {
          bitField0_ = (bitField0_ & ~0x00000080);
          deliveryMechanism_ =
              com.google.firebase.crashlytics.device.session.Crashlytics.DeliveryMechanism
                  .DEVELOPER;
          onChanged();
          return this;
        }

        // optional .Crashlytics.Session.Application.Process process = 4;
        private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .Process
            process_ =
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .Process.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .Process,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .Process.Builder,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .ProcessOrBuilder>
            processBuilder_;

        public boolean hasProcess() {
          return ((bitField0_ & 0x00000100) == 0x00000100);
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .Process
            getProcess() {
          if (processBuilder_ == null) {
            return process_;
          } else {
            return processBuilder_.getMessage();
          }
        }

        public Builder setProcess(
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application.Process
                value) {
          if (processBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            process_ = value;
            onChanged();
          } else {
            processBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000100;
          return this;
        }

        public Builder setProcess(
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application.Process
                    .Builder
                builderForValue) {
          if (processBuilder_ == null) {
            process_ = builderForValue.build();
            onChanged();
          } else {
            processBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000100;
          return this;
        }

        public Builder mergeProcess(
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application.Process
                value) {
          if (processBuilder_ == null) {
            if (((bitField0_ & 0x00000100) == 0x00000100)
                && process_
                    != com.google.firebase.crashlytics.device.session.Crashlytics.Session
                        .Application.Process.getDefaultInstance()) {
              process_ =
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                      .Process.newBuilder(process_)
                      .mergeFrom(value)
                      .buildPartial();
            } else {
              process_ = value;
            }
            onChanged();
          } else {
            processBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000100;
          return this;
        }

        public Builder clearProcess() {
          if (processBuilder_ == null) {
            process_ =
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .Process.getDefaultInstance();
            onChanged();
          } else {
            processBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000100);
          return this;
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .Process.Builder
            getProcessBuilder() {
          bitField0_ |= 0x00000100;
          onChanged();
          return getProcessFieldBuilder().getBuilder();
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .ProcessOrBuilder
            getProcessOrBuilder() {
          if (processBuilder_ != null) {
            return processBuilder_.getMessageOrBuilder();
          } else {
            return process_;
          }
        }

        private com.google.protobuf.SingleFieldBuilder<
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .Process,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .Process.Builder,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .ProcessOrBuilder>
            getProcessFieldBuilder() {
          if (processBuilder_ == null) {
            processBuilder_ =
                new com.google.protobuf.SingleFieldBuilder<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                        .Process,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                        .Process.Builder,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                        .ProcessOrBuilder>(process_, getParentForChildren(), isClean());
            process_ = null;
          }
          return processBuilder_;
        }

        // optional .Crashlytics.Session.Application.Organization organization = 5;
        private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .Organization
            organization_ =
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .Organization.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .Organization,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .Organization.Builder,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .OrganizationOrBuilder>
            organizationBuilder_;

        public boolean hasOrganization() {
          return ((bitField0_ & 0x00000200) == 0x00000200);
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .Organization
            getOrganization() {
          if (organizationBuilder_ == null) {
            return organization_;
          } else {
            return organizationBuilder_.getMessage();
          }
        }

        public Builder setOrganization(
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .Organization
                value) {
          if (organizationBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            organization_ = value;
            onChanged();
          } else {
            organizationBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000200;
          return this;
        }

        public Builder setOrganization(
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .Organization.Builder
                builderForValue) {
          if (organizationBuilder_ == null) {
            organization_ = builderForValue.build();
            onChanged();
          } else {
            organizationBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000200;
          return this;
        }

        public Builder mergeOrganization(
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .Organization
                value) {
          if (organizationBuilder_ == null) {
            if (((bitField0_ & 0x00000200) == 0x00000200)
                && organization_
                    != com.google.firebase.crashlytics.device.session.Crashlytics.Session
                        .Application.Organization.getDefaultInstance()) {
              organization_ =
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                      .Organization.newBuilder(organization_)
                      .mergeFrom(value)
                      .buildPartial();
            } else {
              organization_ = value;
            }
            onChanged();
          } else {
            organizationBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000200;
          return this;
        }

        public Builder clearOrganization() {
          if (organizationBuilder_ == null) {
            organization_ =
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .Organization.getDefaultInstance();
            onChanged();
          } else {
            organizationBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000200);
          return this;
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .Organization.Builder
            getOrganizationBuilder() {
          bitField0_ |= 0x00000200;
          onChanged();
          return getOrganizationFieldBuilder().getBuilder();
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .OrganizationOrBuilder
            getOrganizationOrBuilder() {
          if (organizationBuilder_ != null) {
            return organizationBuilder_.getMessageOrBuilder();
          } else {
            return organization_;
          }
        }

        private com.google.protobuf.SingleFieldBuilder<
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .Organization,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .Organization.Builder,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .OrganizationOrBuilder>
            getOrganizationFieldBuilder() {
          if (organizationBuilder_ == null) {
            organizationBuilder_ =
                new com.google.protobuf.SingleFieldBuilder<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                        .Organization,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                        .Organization.Builder,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                        .OrganizationOrBuilder>(organization_, getParentForChildren(), isClean());
            organization_ = null;
          }
          return organizationBuilder_;
        }

        // @@protoc_insertion_point(builder_scope:Crashlytics.Session.Application)
      }

      static {
        defaultInstance = new Application(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:Crashlytics.Session.Application)
    }

    public interface OperatingSystemOrBuilder extends com.google.protobuf.MessageOrBuilder {

      // required .Crashlytics.Platform platform = 1;
      boolean hasPlatform();

      com.google.firebase.crashlytics.device.session.Crashlytics.Platform getPlatform();

      // required string version = 2;
      boolean hasVersion();

      String getVersion();

      // optional string build_version = 3;
      boolean hasBuildVersion();

      String getBuildVersion();

      // optional bool jailbroken = 4;
      boolean hasJailbroken();

      boolean getJailbroken();
    }

    public static final class OperatingSystem extends com.google.protobuf.GeneratedMessage
        implements OperatingSystemOrBuilder {
      // Use OperatingSystem.newBuilder() to construct.
      private OperatingSystem(Builder builder) {
        super(builder);
      }

      private OperatingSystem(boolean noInit) {}

      private static final OperatingSystem defaultInstance;

      public static OperatingSystem getDefaultInstance() {
        return defaultInstance;
      }

      public OperatingSystem getDefaultInstanceForType() {
        return defaultInstance;
      }

      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return com.google.firebase.crashlytics.device.session.Crashlytics
            .internal_static_Crashlytics_Session_OperatingSystem_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.firebase.crashlytics.device.session.Crashlytics
            .internal_static_Crashlytics_Session_OperatingSystem_fieldAccessorTable;
      }

      private int bitField0_;
      // required .Crashlytics.Platform platform = 1;
      public static final int PLATFORM_FIELD_NUMBER = 1;
      private com.google.firebase.crashlytics.device.session.Crashlytics.Platform platform_;

      public boolean hasPlatform() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Platform getPlatform() {
        return platform_;
      }

      // required string version = 2;
      public static final int VERSION_FIELD_NUMBER = 2;
      private java.lang.Object version_;

      public boolean hasVersion() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }

      public String getVersion() {
        java.lang.Object ref = version_;
        if (ref instanceof String) {
          return (String) ref;
        } else {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (com.google.protobuf.Internal.isValidUtf8(bs)) {
            version_ = s;
          }
          return s;
        }
      }

      private com.google.protobuf.ByteString getVersionBytes() {
        java.lang.Object ref = version_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
          version_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      // optional string build_version = 3;
      public static final int BUILD_VERSION_FIELD_NUMBER = 3;
      private java.lang.Object buildVersion_;

      public boolean hasBuildVersion() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }

      public String getBuildVersion() {
        java.lang.Object ref = buildVersion_;
        if (ref instanceof String) {
          return (String) ref;
        } else {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (com.google.protobuf.Internal.isValidUtf8(bs)) {
            buildVersion_ = s;
          }
          return s;
        }
      }

      private com.google.protobuf.ByteString getBuildVersionBytes() {
        java.lang.Object ref = buildVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
          buildVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      // optional bool jailbroken = 4;
      public static final int JAILBROKEN_FIELD_NUMBER = 4;
      private boolean jailbroken_;

      public boolean hasJailbroken() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }

      public boolean getJailbroken() {
        return jailbroken_;
      }

      private void initFields() {
        platform_ = com.google.firebase.crashlytics.device.session.Crashlytics.Platform.MAC_OS_X;
        version_ = "";
        buildVersion_ = "";
        jailbroken_ = false;
      }

      private byte memoizedIsInitialized = -1;

      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        if (!hasPlatform()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasVersion()) {
          memoizedIsInitialized = 0;
          return false;
        }
        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeEnum(1, platform_.getNumber());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeBytes(2, getVersionBytes());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeBytes(3, getBuildVersionBytes());
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeBool(4, jailbroken_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;

      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, platform_.getNumber());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream.computeBytesSize(2, getVersionBytes());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream.computeBytesSize(3, getBuildVersionBytes());
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, jailbroken_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;

      @java.lang.Override
      protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session
              .OperatingSystem
          parseFrom(com.google.protobuf.ByteString data)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session
              .OperatingSystem
          parseFrom(
              com.google.protobuf.ByteString data,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session
              .OperatingSystem
          parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session
              .OperatingSystem
          parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session
              .OperatingSystem
          parseFrom(java.io.InputStream input) throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session
              .OperatingSystem
          parseFrom(
              java.io.InputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session
              .OperatingSystem
          parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session
              .OperatingSystem
          parseDelimitedFrom(
              java.io.InputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session
              .OperatingSystem
          parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session
              .OperatingSystem
          parseFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
      }

      public static Builder newBuilder() {
        return Builder.create();
      }

      public Builder newBuilderForType() {
        return newBuilder();
      }

      public static Builder newBuilder(
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem
              prototype) {
        return newBuilder().mergeFrom(prototype);
      }

      public Builder toBuilder() {
        return newBuilder(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }

      public static final class Builder
          extends com.google.protobuf.GeneratedMessage.Builder<Builder>
          implements com.google.firebase.crashlytics.device.session.Crashlytics.Session
              .OperatingSystemOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
          return com.google.firebase.crashlytics.device.session.Crashlytics
              .internal_static_Crashlytics_Session_OperatingSystem_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.firebase.crashlytics.device.session.Crashlytics
              .internal_static_Crashlytics_Session_OperatingSystem_fieldAccessorTable;
        }

        // Construct using
        // com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }

        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {}
        }

        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          platform_ = com.google.firebase.crashlytics.device.session.Crashlytics.Platform.MAC_OS_X;
          bitField0_ = (bitField0_ & ~0x00000001);
          version_ = "";
          bitField0_ = (bitField0_ & ~0x00000002);
          buildVersion_ = "";
          bitField0_ = (bitField0_ & ~0x00000004);
          jailbroken_ = false;
          bitField0_ = (bitField0_ & ~0x00000008);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
          return com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem
              .getDescriptor();
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem
            getDefaultInstanceForType() {
          return com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem
              .getDefaultInstance();
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem
            build() {
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem
              result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        private com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem
            buildParsed() throws com.google.protobuf.InvalidProtocolBufferException {
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem
              result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result).asInvalidProtocolBufferException();
          }
          return result;
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem
            buildPartial() {
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem
              result =
                  new com.google.firebase.crashlytics.device.session.Crashlytics.Session
                      .OperatingSystem(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.platform_ = platform_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.version_ = version_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.buildVersion_ = buildVersion_;
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          result.jailbroken_ = jailbroken_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other
              instanceof
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem) {
            return mergeFrom(
                (com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem)
                    other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem
                other) {
          if (other
              == com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem
                  .getDefaultInstance()) return this;
          if (other.hasPlatform()) {
            setPlatform(other.getPlatform());
          }
          if (other.hasVersion()) {
            setVersion(other.getVersion());
          }
          if (other.hasBuildVersion()) {
            setBuildVersion(other.getBuildVersion());
          }
          if (other.hasJailbroken()) {
            setJailbroken(other.getJailbroken());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          if (!hasPlatform()) {

            return false;
          }
          if (!hasVersion()) {

            return false;
          }
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder(this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              default:
                {
                  if (!parseUnknownField(
                      input, unknownFields,
                      extensionRegistry, tag)) {
                    this.setUnknownFields(unknownFields.build());
                    onChanged();
                    return this;
                  }
                  break;
                }
              case 8:
                {
                  int rawValue = input.readEnum();
                  com.google.firebase.crashlytics.device.session.Crashlytics.Platform value =
                      com.google.firebase.crashlytics.device.session.Crashlytics.Platform.valueOf(
                          rawValue);
                  if (value == null) {
                    unknownFields.mergeVarintField(1, rawValue);
                  } else {
                    bitField0_ |= 0x00000001;
                    platform_ = value;
                  }
                  break;
                }
              case 18:
                {
                  bitField0_ |= 0x00000002;
                  version_ = input.readBytes();
                  break;
                }
              case 26:
                {
                  bitField0_ |= 0x00000004;
                  buildVersion_ = input.readBytes();
                  break;
                }
              case 32:
                {
                  bitField0_ |= 0x00000008;
                  jailbroken_ = input.readBool();
                  break;
                }
            }
          }
        }

        private int bitField0_;

        // required .Crashlytics.Platform platform = 1;
        private com.google.firebase.crashlytics.device.session.Crashlytics.Platform platform_ =
            com.google.firebase.crashlytics.device.session.Crashlytics.Platform.MAC_OS_X;

        public boolean hasPlatform() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Platform getPlatform() {
          return platform_;
        }

        public Builder setPlatform(
            com.google.firebase.crashlytics.device.session.Crashlytics.Platform value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000001;
          platform_ = value;
          onChanged();
          return this;
        }

        public Builder clearPlatform() {
          bitField0_ = (bitField0_ & ~0x00000001);
          platform_ = com.google.firebase.crashlytics.device.session.Crashlytics.Platform.MAC_OS_X;
          onChanged();
          return this;
        }

        // required string version = 2;
        private java.lang.Object version_ = "";

        public boolean hasVersion() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }

        public String getVersion() {
          java.lang.Object ref = version_;
          if (!(ref instanceof String)) {
            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
            version_ = s;
            return s;
          } else {
            return (String) ref;
          }
        }

        public Builder setVersion(String value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000002;
          version_ = value;
          onChanged();
          return this;
        }

        public Builder clearVersion() {
          bitField0_ = (bitField0_ & ~0x00000002);
          version_ = getDefaultInstance().getVersion();
          onChanged();
          return this;
        }

        void setVersion(com.google.protobuf.ByteString value) {
          bitField0_ |= 0x00000002;
          version_ = value;
          onChanged();
        }

        // optional string build_version = 3;
        private java.lang.Object buildVersion_ = "";

        public boolean hasBuildVersion() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }

        public String getBuildVersion() {
          java.lang.Object ref = buildVersion_;
          if (!(ref instanceof String)) {
            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
            buildVersion_ = s;
            return s;
          } else {
            return (String) ref;
          }
        }

        public Builder setBuildVersion(String value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000004;
          buildVersion_ = value;
          onChanged();
          return this;
        }

        public Builder clearBuildVersion() {
          bitField0_ = (bitField0_ & ~0x00000004);
          buildVersion_ = getDefaultInstance().getBuildVersion();
          onChanged();
          return this;
        }

        void setBuildVersion(com.google.protobuf.ByteString value) {
          bitField0_ |= 0x00000004;
          buildVersion_ = value;
          onChanged();
        }

        // optional bool jailbroken = 4;
        private boolean jailbroken_;

        public boolean hasJailbroken() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }

        public boolean getJailbroken() {
          return jailbroken_;
        }

        public Builder setJailbroken(boolean value) {
          bitField0_ |= 0x00000008;
          jailbroken_ = value;
          onChanged();
          return this;
        }

        public Builder clearJailbroken() {
          bitField0_ = (bitField0_ & ~0x00000008);
          jailbroken_ = false;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:Crashlytics.Session.OperatingSystem)
      }

      static {
        defaultInstance = new OperatingSystem(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:Crashlytics.Session.OperatingSystem)
    }

    public interface DeviceOrBuilder extends com.google.protobuf.MessageOrBuilder {

      // optional bytes identifier = 1;
      boolean hasIdentifier();

      com.google.protobuf.ByteString getIdentifier();

      // optional bytes udid = 2;
      boolean hasUdid();

      com.google.protobuf.ByteString getUdid();

      // required .Crashlytics.Architecture arch = 3;
      boolean hasArch();

      com.google.firebase.crashlytics.device.session.Crashlytics.Architecture getArch();

      // optional string model = 4;
      boolean hasModel();

      String getModel();

      // optional uint32 cores = 5;
      boolean hasCores();

      int getCores();

      // optional uint64 ram = 6;
      boolean hasRam();

      long getRam();

      // optional uint64 disk_space = 7;
      boolean hasDiskSpace();

      long getDiskSpace();

      // optional string user_agent = 8;
      boolean hasUserAgent();

      String getUserAgent();

      // optional string language = 9;
      boolean hasLanguage();

      String getLanguage();

      // optional bool simulator = 10;
      boolean hasSimulator();

      boolean getSimulator();

      // repeated .Crashlytics.Session.Device.Identifier identifiers = 11;
      java.util.List<
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.Identifier>
          getIdentifiersList();

      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.Identifier
          getIdentifiers(int index);

      int getIdentifiersCount();

      java.util.List<
              ? extends
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                      .IdentifierOrBuilder>
          getIdentifiersOrBuilderList();

      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.IdentifierOrBuilder
          getIdentifiersOrBuilder(int index);

      // optional uint32 state = 12;
      boolean hasState();

      int getState();

      // optional string manufacturer = 13;
      boolean hasManufacturer();

      String getManufacturer();

      // optional string model_class = 14;
      boolean hasModelClass();

      String getModelClass();
    }

    public static final class Device extends com.google.protobuf.GeneratedMessage
        implements DeviceOrBuilder {
      // Use Device.newBuilder() to construct.
      private Device(Builder builder) {
        super(builder);
      }

      private Device(boolean noInit) {}

      private static final Device defaultInstance;

      public static Device getDefaultInstance() {
        return defaultInstance;
      }

      public Device getDefaultInstanceForType() {
        return defaultInstance;
      }

      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return com.google.firebase.crashlytics.device.session.Crashlytics
            .internal_static_Crashlytics_Session_Device_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.firebase.crashlytics.device.session.Crashlytics
            .internal_static_Crashlytics_Session_Device_fieldAccessorTable;
      }

      public interface IdentifierOrBuilder extends com.google.protobuf.MessageOrBuilder {

        // required .Crashlytics.DeviceIdentifierType key = 1;
        boolean hasKey();

        com.google.firebase.crashlytics.device.session.Crashlytics.DeviceIdentifierType getKey();

        // required string value = 2;
        boolean hasValue();

        String getValue();
      }

      public static final class Identifier extends com.google.protobuf.GeneratedMessage
          implements IdentifierOrBuilder {
        // Use Identifier.newBuilder() to construct.
        private Identifier(Builder builder) {
          super(builder);
        }

        private Identifier(boolean noInit) {}

        private static final Identifier defaultInstance;

        public static Identifier getDefaultInstance() {
          return defaultInstance;
        }

        public Identifier getDefaultInstanceForType() {
          return defaultInstance;
        }

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
          return com.google.firebase.crashlytics.device.session.Crashlytics
              .internal_static_Crashlytics_Session_Device_Identifier_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.firebase.crashlytics.device.session.Crashlytics
              .internal_static_Crashlytics_Session_Device_Identifier_fieldAccessorTable;
        }

        private int bitField0_;
        // required .Crashlytics.DeviceIdentifierType key = 1;
        public static final int KEY_FIELD_NUMBER = 1;
        private com.google.firebase.crashlytics.device.session.Crashlytics.DeviceIdentifierType
            key_;

        public boolean hasKey() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.DeviceIdentifierType
            getKey() {
          return key_;
        }

        // required string value = 2;
        public static final int VALUE_FIELD_NUMBER = 2;
        private java.lang.Object value_;

        public boolean hasValue() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }

        public String getValue() {
          java.lang.Object ref = value_;
          if (ref instanceof String) {
            return (String) ref;
          } else {
            com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
            String s = bs.toStringUtf8();
            if (com.google.protobuf.Internal.isValidUtf8(bs)) {
              value_ = s;
            }
            return s;
          }
        }

        private com.google.protobuf.ByteString getValueBytes() {
          java.lang.Object ref = value_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b =
                com.google.protobuf.ByteString.copyFromUtf8((String) ref);
            value_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }

        private void initFields() {
          key_ =
              com.google.firebase.crashlytics.device.session.Crashlytics.DeviceIdentifierType
                  .WIFI_MAC_ADDRESS;
          value_ = "";
        }

        private byte memoizedIsInitialized = -1;

        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized != -1) return isInitialized == 1;

          if (!hasKey()) {
            memoizedIsInitialized = 0;
            return false;
          }
          if (!hasValue()) {
            memoizedIsInitialized = 0;
            return false;
          }
          memoizedIsInitialized = 1;
          return true;
        }

        public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
          getSerializedSize();
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            output.writeEnum(1, key_.getNumber());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            output.writeBytes(2, getValueBytes());
          }
          getUnknownFields().writeTo(output);
        }

        private int memoizedSerializedSize = -1;

        public int getSerializedSize() {
          int size = memoizedSerializedSize;
          if (size != -1) return size;

          size = 0;
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, key_.getNumber());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            size += com.google.protobuf.CodedOutputStream.computeBytesSize(2, getValueBytes());
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSerializedSize = size;
          return size;
        }

        private static final long serialVersionUID = 0L;

        @java.lang.Override
        protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
          return super.writeReplace();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                .Identifier
            parseFrom(com.google.protobuf.ByteString data)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                .Identifier
            parseFrom(
                com.google.protobuf.ByteString data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                .Identifier
            parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                .Identifier
            parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                .Identifier
            parseFrom(java.io.InputStream input) throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                .Identifier
            parseFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                .Identifier
            parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                .Identifier
            parseDelimitedFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                .Identifier
            parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                .Identifier
            parseFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
        }

        public static Builder newBuilder() {
          return Builder.create();
        }

        public Builder newBuilderForType() {
          return newBuilder();
        }

        public static Builder newBuilder(
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.Identifier
                prototype) {
          return newBuilder().mergeFrom(prototype);
        }

        public Builder toBuilder() {
          return newBuilder(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }

        public static final class Builder
            extends com.google.protobuf.GeneratedMessage.Builder<Builder>
            implements com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                .IdentifierOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return com.google.firebase.crashlytics.device.session.Crashlytics
                .internal_static_Crashlytics_Session_Device_Identifier_descriptor;
          }

          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return com.google.firebase.crashlytics.device.session.Crashlytics
                .internal_static_Crashlytics_Session_Device_Identifier_fieldAccessorTable;
          }

          // Construct using
          // com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.Identifier.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }

          private Builder(BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }

          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {}
          }

          private static Builder create() {
            return new Builder();
          }

          public Builder clear() {
            super.clear();
            key_ =
                com.google.firebase.crashlytics.device.session.Crashlytics.DeviceIdentifierType
                    .WIFI_MAC_ADDRESS;
            bitField0_ = (bitField0_ & ~0x00000001);
            value_ = "";
            bitField0_ = (bitField0_ & ~0x00000002);
            return this;
          }

          public Builder clone() {
            return create().mergeFrom(buildPartial());
          }

          public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
            return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                .Identifier.getDescriptor();
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                  .Identifier
              getDefaultInstanceForType() {
            return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                .Identifier.getDefaultInstance();
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                  .Identifier
              build() {
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.Identifier
                result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                  .Identifier
              buildParsed() throws com.google.protobuf.InvalidProtocolBufferException {
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.Identifier
                result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result).asInvalidProtocolBufferException();
            }
            return result;
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                  .Identifier
              buildPartial() {
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.Identifier
                result =
                    new com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                        .Identifier(this);
            int from_bitField0_ = bitField0_;
            int to_bitField0_ = 0;
            if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
              to_bitField0_ |= 0x00000001;
            }
            result.key_ = key_;
            if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
              to_bitField0_ |= 0x00000002;
            }
            result.value_ = value_;
            result.bitField0_ = to_bitField0_;
            onBuilt();
            return result;
          }

          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other
                instanceof
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                    .Identifier) {
              return mergeFrom(
                  (com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                          .Identifier)
                      other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.Identifier
                  other) {
            if (other
                == com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                    .Identifier.getDefaultInstance()) return this;
            if (other.hasKey()) {
              setKey(other.getKey());
            }
            if (other.hasValue()) {
              setValue(other.getValue());
            }
            this.mergeUnknownFields(other.getUnknownFields());
            return this;
          }

          public final boolean isInitialized() {
            if (!hasKey()) {

              return false;
            }
            if (!hasValue()) {

              return false;
            }
            return true;
          }

          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                com.google.protobuf.UnknownFieldSet.newBuilder(this.getUnknownFields());
            while (true) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                default:
                  {
                    if (!parseUnknownField(
                        input, unknownFields,
                        extensionRegistry, tag)) {
                      this.setUnknownFields(unknownFields.build());
                      onChanged();
                      return this;
                    }
                    break;
                  }
                case 8:
                  {
                    int rawValue = input.readEnum();
                    com.google.firebase.crashlytics.device.session.Crashlytics.DeviceIdentifierType
                        value =
                            com.google.firebase.crashlytics.device.session.Crashlytics
                                .DeviceIdentifierType.valueOf(rawValue);
                    if (value == null) {
                      unknownFields.mergeVarintField(1, rawValue);
                    } else {
                      bitField0_ |= 0x00000001;
                      key_ = value;
                    }
                    break;
                  }
                case 18:
                  {
                    bitField0_ |= 0x00000002;
                    value_ = input.readBytes();
                    break;
                  }
              }
            }
          }

          private int bitField0_;

          // required .Crashlytics.DeviceIdentifierType key = 1;
          private com.google.firebase.crashlytics.device.session.Crashlytics.DeviceIdentifierType
              key_ =
                  com.google.firebase.crashlytics.device.session.Crashlytics.DeviceIdentifierType
                      .WIFI_MAC_ADDRESS;

          public boolean hasKey() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.DeviceIdentifierType
              getKey() {
            return key_;
          }

          public Builder setKey(
              com.google.firebase.crashlytics.device.session.Crashlytics.DeviceIdentifierType
                  value) {
            if (value == null) {
              throw new NullPointerException();
            }
            bitField0_ |= 0x00000001;
            key_ = value;
            onChanged();
            return this;
          }

          public Builder clearKey() {
            bitField0_ = (bitField0_ & ~0x00000001);
            key_ =
                com.google.firebase.crashlytics.device.session.Crashlytics.DeviceIdentifierType
                    .WIFI_MAC_ADDRESS;
            onChanged();
            return this;
          }

          // required string value = 2;
          private java.lang.Object value_ = "";

          public boolean hasValue() {
            return ((bitField0_ & 0x00000002) == 0x00000002);
          }

          public String getValue() {
            java.lang.Object ref = value_;
            if (!(ref instanceof String)) {
              String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
              value_ = s;
              return s;
            } else {
              return (String) ref;
            }
          }

          public Builder setValue(String value) {
            if (value == null) {
              throw new NullPointerException();
            }
            bitField0_ |= 0x00000002;
            value_ = value;
            onChanged();
            return this;
          }

          public Builder clearValue() {
            bitField0_ = (bitField0_ & ~0x00000002);
            value_ = getDefaultInstance().getValue();
            onChanged();
            return this;
          }

          void setValue(com.google.protobuf.ByteString value) {
            bitField0_ |= 0x00000002;
            value_ = value;
            onChanged();
          }

          // @@protoc_insertion_point(builder_scope:Crashlytics.Session.Device.Identifier)
        }

        static {
          defaultInstance = new Identifier(true);
          defaultInstance.initFields();
        }

        // @@protoc_insertion_point(class_scope:Crashlytics.Session.Device.Identifier)
      }

      private int bitField0_;
      // optional bytes identifier = 1;
      public static final int IDENTIFIER_FIELD_NUMBER = 1;
      private com.google.protobuf.ByteString identifier_;

      public boolean hasIdentifier() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }

      public com.google.protobuf.ByteString getIdentifier() {
        return identifier_;
      }

      // optional bytes udid = 2;
      public static final int UDID_FIELD_NUMBER = 2;
      private com.google.protobuf.ByteString udid_;

      public boolean hasUdid() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }

      public com.google.protobuf.ByteString getUdid() {
        return udid_;
      }

      // required .Crashlytics.Architecture arch = 3;
      public static final int ARCH_FIELD_NUMBER = 3;
      private com.google.firebase.crashlytics.device.session.Crashlytics.Architecture arch_;

      public boolean hasArch() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Architecture getArch() {
        return arch_;
      }

      // optional string model = 4;
      public static final int MODEL_FIELD_NUMBER = 4;
      private java.lang.Object model_;

      public boolean hasModel() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }

      public String getModel() {
        java.lang.Object ref = model_;
        if (ref instanceof String) {
          return (String) ref;
        } else {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (com.google.protobuf.Internal.isValidUtf8(bs)) {
            model_ = s;
          }
          return s;
        }
      }

      private com.google.protobuf.ByteString getModelBytes() {
        java.lang.Object ref = model_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
          model_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      // optional uint32 cores = 5;
      public static final int CORES_FIELD_NUMBER = 5;
      private int cores_;

      public boolean hasCores() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }

      public int getCores() {
        return cores_;
      }

      // optional uint64 ram = 6;
      public static final int RAM_FIELD_NUMBER = 6;
      private long ram_;

      public boolean hasRam() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }

      public long getRam() {
        return ram_;
      }

      // optional uint64 disk_space = 7;
      public static final int DISK_SPACE_FIELD_NUMBER = 7;
      private long diskSpace_;

      public boolean hasDiskSpace() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }

      public long getDiskSpace() {
        return diskSpace_;
      }

      // optional string user_agent = 8;
      public static final int USER_AGENT_FIELD_NUMBER = 8;
      private java.lang.Object userAgent_;

      public boolean hasUserAgent() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }

      public String getUserAgent() {
        java.lang.Object ref = userAgent_;
        if (ref instanceof String) {
          return (String) ref;
        } else {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (com.google.protobuf.Internal.isValidUtf8(bs)) {
            userAgent_ = s;
          }
          return s;
        }
      }

      private com.google.protobuf.ByteString getUserAgentBytes() {
        java.lang.Object ref = userAgent_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
          userAgent_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      // optional string language = 9;
      public static final int LANGUAGE_FIELD_NUMBER = 9;
      private java.lang.Object language_;

      public boolean hasLanguage() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }

      public String getLanguage() {
        java.lang.Object ref = language_;
        if (ref instanceof String) {
          return (String) ref;
        } else {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (com.google.protobuf.Internal.isValidUtf8(bs)) {
            language_ = s;
          }
          return s;
        }
      }

      private com.google.protobuf.ByteString getLanguageBytes() {
        java.lang.Object ref = language_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
          language_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      // optional bool simulator = 10;
      public static final int SIMULATOR_FIELD_NUMBER = 10;
      private boolean simulator_;

      public boolean hasSimulator() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }

      public boolean getSimulator() {
        return simulator_;
      }

      // repeated .Crashlytics.Session.Device.Identifier identifiers = 11;
      public static final int IDENTIFIERS_FIELD_NUMBER = 11;
      private java.util.List<
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.Identifier>
          identifiers_;

      public java.util.List<
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.Identifier>
          getIdentifiersList() {
        return identifiers_;
      }

      public java.util.List<
              ? extends
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                      .IdentifierOrBuilder>
          getIdentifiersOrBuilderList() {
        return identifiers_;
      }

      public int getIdentifiersCount() {
        return identifiers_.size();
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.Identifier
          getIdentifiers(int index) {
        return identifiers_.get(index);
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
              .IdentifierOrBuilder
          getIdentifiersOrBuilder(int index) {
        return identifiers_.get(index);
      }

      // optional uint32 state = 12;
      public static final int STATE_FIELD_NUMBER = 12;
      private int state_;

      public boolean hasState() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }

      public int getState() {
        return state_;
      }

      // optional string manufacturer = 13;
      public static final int MANUFACTURER_FIELD_NUMBER = 13;
      private java.lang.Object manufacturer_;

      public boolean hasManufacturer() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }

      public String getManufacturer() {
        java.lang.Object ref = manufacturer_;
        if (ref instanceof String) {
          return (String) ref;
        } else {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (com.google.protobuf.Internal.isValidUtf8(bs)) {
            manufacturer_ = s;
          }
          return s;
        }
      }

      private com.google.protobuf.ByteString getManufacturerBytes() {
        java.lang.Object ref = manufacturer_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
          manufacturer_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      // optional string model_class = 14;
      public static final int MODEL_CLASS_FIELD_NUMBER = 14;
      private java.lang.Object modelClass_;

      public boolean hasModelClass() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }

      public String getModelClass() {
        java.lang.Object ref = modelClass_;
        if (ref instanceof String) {
          return (String) ref;
        } else {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (com.google.protobuf.Internal.isValidUtf8(bs)) {
            modelClass_ = s;
          }
          return s;
        }
      }

      private com.google.protobuf.ByteString getModelClassBytes() {
        java.lang.Object ref = modelClass_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
          modelClass_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      private void initFields() {
        identifier_ = com.google.protobuf.ByteString.EMPTY;
        udid_ = com.google.protobuf.ByteString.EMPTY;
        arch_ = com.google.firebase.crashlytics.device.session.Crashlytics.Architecture.X86_32;
        model_ = "";
        cores_ = 0;
        ram_ = 0L;
        diskSpace_ = 0L;
        userAgent_ = "";
        language_ = "";
        simulator_ = false;
        identifiers_ = java.util.Collections.emptyList();
        state_ = 0;
        manufacturer_ = "";
        modelClass_ = "";
      }

      private byte memoizedIsInitialized = -1;

      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        if (!hasArch()) {
          memoizedIsInitialized = 0;
          return false;
        }
        for (int i = 0; i < getIdentifiersCount(); i++) {
          if (!getIdentifiers(i).isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBytes(1, identifier_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeBytes(2, udid_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeEnum(3, arch_.getNumber());
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeBytes(4, getModelBytes());
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          output.writeUInt32(5, cores_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          output.writeUInt64(6, ram_);
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          output.writeUInt64(7, diskSpace_);
        }
        if (((bitField0_ & 0x00000080) == 0x00000080)) {
          output.writeBytes(8, getUserAgentBytes());
        }
        if (((bitField0_ & 0x00000100) == 0x00000100)) {
          output.writeBytes(9, getLanguageBytes());
        }
        if (((bitField0_ & 0x00000200) == 0x00000200)) {
          output.writeBool(10, simulator_);
        }
        for (int i = 0; i < identifiers_.size(); i++) {
          output.writeMessage(11, identifiers_.get(i));
        }
        if (((bitField0_ & 0x00000400) == 0x00000400)) {
          output.writeUInt32(12, state_);
        }
        if (((bitField0_ & 0x00000800) == 0x00000800)) {
          output.writeBytes(13, getManufacturerBytes());
        }
        if (((bitField0_ & 0x00001000) == 0x00001000)) {
          output.writeBytes(14, getModelClassBytes());
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;

      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream.computeBytesSize(1, identifier_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream.computeBytesSize(2, udid_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream.computeEnumSize(3, arch_.getNumber());
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream.computeBytesSize(4, getModelBytes());
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          size += com.google.protobuf.CodedOutputStream.computeUInt32Size(5, cores_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          size += com.google.protobuf.CodedOutputStream.computeUInt64Size(6, ram_);
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          size += com.google.protobuf.CodedOutputStream.computeUInt64Size(7, diskSpace_);
        }
        if (((bitField0_ & 0x00000080) == 0x00000080)) {
          size += com.google.protobuf.CodedOutputStream.computeBytesSize(8, getUserAgentBytes());
        }
        if (((bitField0_ & 0x00000100) == 0x00000100)) {
          size += com.google.protobuf.CodedOutputStream.computeBytesSize(9, getLanguageBytes());
        }
        if (((bitField0_ & 0x00000200) == 0x00000200)) {
          size += com.google.protobuf.CodedOutputStream.computeBoolSize(10, simulator_);
        }
        for (int i = 0; i < identifiers_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream.computeMessageSize(11, identifiers_.get(i));
        }
        if (((bitField0_ & 0x00000400) == 0x00000400)) {
          size += com.google.protobuf.CodedOutputStream.computeUInt32Size(12, state_);
        }
        if (((bitField0_ & 0x00000800) == 0x00000800)) {
          size +=
              com.google.protobuf.CodedOutputStream.computeBytesSize(13, getManufacturerBytes());
        }
        if (((bitField0_ & 0x00001000) == 0x00001000)) {
          size += com.google.protobuf.CodedOutputStream.computeBytesSize(14, getModelClassBytes());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;

      @java.lang.Override
      protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
          parseFrom(com.google.protobuf.ByteString data)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
          parseFrom(
              com.google.protobuf.ByteString data,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
          parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
          parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
          parseFrom(java.io.InputStream input) throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
          parseFrom(
              java.io.InputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
          parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
          parseDelimitedFrom(
              java.io.InputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
          parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
          parseFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
      }

      public static Builder newBuilder() {
        return Builder.create();
      }

      public Builder newBuilderForType() {
        return newBuilder();
      }

      public static Builder newBuilder(
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device prototype) {
        return newBuilder().mergeFrom(prototype);
      }

      public Builder toBuilder() {
        return newBuilder(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }

      public static final class Builder
          extends com.google.protobuf.GeneratedMessage.Builder<Builder>
          implements com.google.firebase.crashlytics.device.session.Crashlytics.Session
              .DeviceOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
          return com.google.firebase.crashlytics.device.session.Crashlytics
              .internal_static_Crashlytics_Session_Device_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.firebase.crashlytics.device.session.Crashlytics
              .internal_static_Crashlytics_Session_Device_fieldAccessorTable;
        }

        // Construct using
        // com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }

        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getIdentifiersFieldBuilder();
          }
        }

        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          identifier_ = com.google.protobuf.ByteString.EMPTY;
          bitField0_ = (bitField0_ & ~0x00000001);
          udid_ = com.google.protobuf.ByteString.EMPTY;
          bitField0_ = (bitField0_ & ~0x00000002);
          arch_ = com.google.firebase.crashlytics.device.session.Crashlytics.Architecture.X86_32;
          bitField0_ = (bitField0_ & ~0x00000004);
          model_ = "";
          bitField0_ = (bitField0_ & ~0x00000008);
          cores_ = 0;
          bitField0_ = (bitField0_ & ~0x00000010);
          ram_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000020);
          diskSpace_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000040);
          userAgent_ = "";
          bitField0_ = (bitField0_ & ~0x00000080);
          language_ = "";
          bitField0_ = (bitField0_ & ~0x00000100);
          simulator_ = false;
          bitField0_ = (bitField0_ & ~0x00000200);
          if (identifiersBuilder_ == null) {
            identifiers_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000400);
          } else {
            identifiersBuilder_.clear();
          }
          state_ = 0;
          bitField0_ = (bitField0_ & ~0x00000800);
          manufacturer_ = "";
          bitField0_ = (bitField0_ & ~0x00001000);
          modelClass_ = "";
          bitField0_ = (bitField0_ & ~0x00002000);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
          return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
              .getDescriptor();
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
            getDefaultInstanceForType() {
          return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
              .getDefaultInstance();
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device build() {
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device result =
              buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
            buildParsed() throws com.google.protobuf.InvalidProtocolBufferException {
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device result =
              buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result).asInvalidProtocolBufferException();
          }
          return result;
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
            buildPartial() {
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device result =
              new com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.identifier_ = identifier_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.udid_ = udid_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.arch_ = arch_;
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          result.model_ = model_;
          if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
            to_bitField0_ |= 0x00000010;
          }
          result.cores_ = cores_;
          if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
            to_bitField0_ |= 0x00000020;
          }
          result.ram_ = ram_;
          if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
            to_bitField0_ |= 0x00000040;
          }
          result.diskSpace_ = diskSpace_;
          if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
            to_bitField0_ |= 0x00000080;
          }
          result.userAgent_ = userAgent_;
          if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
            to_bitField0_ |= 0x00000100;
          }
          result.language_ = language_;
          if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
            to_bitField0_ |= 0x00000200;
          }
          result.simulator_ = simulator_;
          if (identifiersBuilder_ == null) {
            if (((bitField0_ & 0x00000400) == 0x00000400)) {
              identifiers_ = java.util.Collections.unmodifiableList(identifiers_);
              bitField0_ = (bitField0_ & ~0x00000400);
            }
            result.identifiers_ = identifiers_;
          } else {
            result.identifiers_ = identifiersBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
            to_bitField0_ |= 0x00000400;
          }
          result.state_ = state_;
          if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
            to_bitField0_ |= 0x00000800;
          }
          result.manufacturer_ = manufacturer_;
          if (((from_bitField0_ & 0x00002000) == 0x00002000)) {
            to_bitField0_ |= 0x00001000;
          }
          result.modelClass_ = modelClass_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other
              instanceof
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device) {
            return mergeFrom(
                (com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device) other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device other) {
          if (other
              == com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                  .getDefaultInstance()) return this;
          if (other.hasIdentifier()) {
            setIdentifier(other.getIdentifier());
          }
          if (other.hasUdid()) {
            setUdid(other.getUdid());
          }
          if (other.hasArch()) {
            setArch(other.getArch());
          }
          if (other.hasModel()) {
            setModel(other.getModel());
          }
          if (other.hasCores()) {
            setCores(other.getCores());
          }
          if (other.hasRam()) {
            setRam(other.getRam());
          }
          if (other.hasDiskSpace()) {
            setDiskSpace(other.getDiskSpace());
          }
          if (other.hasUserAgent()) {
            setUserAgent(other.getUserAgent());
          }
          if (other.hasLanguage()) {
            setLanguage(other.getLanguage());
          }
          if (other.hasSimulator()) {
            setSimulator(other.getSimulator());
          }
          if (identifiersBuilder_ == null) {
            if (!other.identifiers_.isEmpty()) {
              if (identifiers_.isEmpty()) {
                identifiers_ = other.identifiers_;
                bitField0_ = (bitField0_ & ~0x00000400);
              } else {
                ensureIdentifiersIsMutable();
                identifiers_.addAll(other.identifiers_);
              }
              onChanged();
            }
          } else {
            if (!other.identifiers_.isEmpty()) {
              if (identifiersBuilder_.isEmpty()) {
                identifiersBuilder_.dispose();
                identifiersBuilder_ = null;
                identifiers_ = other.identifiers_;
                bitField0_ = (bitField0_ & ~0x00000400);
                identifiersBuilder_ =
                    com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders
                        ? getIdentifiersFieldBuilder()
                        : null;
              } else {
                identifiersBuilder_.addAllMessages(other.identifiers_);
              }
            }
          }
          if (other.hasState()) {
            setState(other.getState());
          }
          if (other.hasManufacturer()) {
            setManufacturer(other.getManufacturer());
          }
          if (other.hasModelClass()) {
            setModelClass(other.getModelClass());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          if (!hasArch()) {

            return false;
          }
          for (int i = 0; i < getIdentifiersCount(); i++) {
            if (!getIdentifiers(i).isInitialized()) {

              return false;
            }
          }
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder(this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              default:
                {
                  if (!parseUnknownField(
                      input, unknownFields,
                      extensionRegistry, tag)) {
                    this.setUnknownFields(unknownFields.build());
                    onChanged();
                    return this;
                  }
                  break;
                }
              case 10:
                {
                  bitField0_ |= 0x00000001;
                  identifier_ = input.readBytes();
                  break;
                }
              case 18:
                {
                  bitField0_ |= 0x00000002;
                  udid_ = input.readBytes();
                  break;
                }
              case 24:
                {
                  int rawValue = input.readEnum();
                  com.google.firebase.crashlytics.device.session.Crashlytics.Architecture value =
                      com.google.firebase.crashlytics.device.session.Crashlytics.Architecture
                          .valueOf(rawValue);
                  if (value == null) {
                    unknownFields.mergeVarintField(3, rawValue);
                  } else {
                    bitField0_ |= 0x00000004;
                    arch_ = value;
                  }
                  break;
                }
              case 34:
                {
                  bitField0_ |= 0x00000008;
                  model_ = input.readBytes();
                  break;
                }
              case 40:
                {
                  bitField0_ |= 0x00000010;
                  cores_ = input.readUInt32();
                  break;
                }
              case 48:
                {
                  bitField0_ |= 0x00000020;
                  ram_ = input.readUInt64();
                  break;
                }
              case 56:
                {
                  bitField0_ |= 0x00000040;
                  diskSpace_ = input.readUInt64();
                  break;
                }
              case 66:
                {
                  bitField0_ |= 0x00000080;
                  userAgent_ = input.readBytes();
                  break;
                }
              case 74:
                {
                  bitField0_ |= 0x00000100;
                  language_ = input.readBytes();
                  break;
                }
              case 80:
                {
                  bitField0_ |= 0x00000200;
                  simulator_ = input.readBool();
                  break;
                }
              case 90:
                {
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                          .Identifier.Builder
                      subBuilder =
                          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                              .Identifier.newBuilder();
                  input.readMessage(subBuilder, extensionRegistry);
                  addIdentifiers(subBuilder.buildPartial());
                  break;
                }
              case 96:
                {
                  bitField0_ |= 0x00000800;
                  state_ = input.readUInt32();
                  break;
                }
              case 106:
                {
                  bitField0_ |= 0x00001000;
                  manufacturer_ = input.readBytes();
                  break;
                }
              case 114:
                {
                  bitField0_ |= 0x00002000;
                  modelClass_ = input.readBytes();
                  break;
                }
            }
          }
        }

        private int bitField0_;

        // optional bytes identifier = 1;
        private com.google.protobuf.ByteString identifier_ = com.google.protobuf.ByteString.EMPTY;

        public boolean hasIdentifier() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }

        public com.google.protobuf.ByteString getIdentifier() {
          return identifier_;
        }

        public Builder setIdentifier(com.google.protobuf.ByteString value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000001;
          identifier_ = value;
          onChanged();
          return this;
        }

        public Builder clearIdentifier() {
          bitField0_ = (bitField0_ & ~0x00000001);
          identifier_ = getDefaultInstance().getIdentifier();
          onChanged();
          return this;
        }

        // optional bytes udid = 2;
        private com.google.protobuf.ByteString udid_ = com.google.protobuf.ByteString.EMPTY;

        public boolean hasUdid() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }

        public com.google.protobuf.ByteString getUdid() {
          return udid_;
        }

        public Builder setUdid(com.google.protobuf.ByteString value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000002;
          udid_ = value;
          onChanged();
          return this;
        }

        public Builder clearUdid() {
          bitField0_ = (bitField0_ & ~0x00000002);
          udid_ = getDefaultInstance().getUdid();
          onChanged();
          return this;
        }

        // required .Crashlytics.Architecture arch = 3;
        private com.google.firebase.crashlytics.device.session.Crashlytics.Architecture arch_ =
            com.google.firebase.crashlytics.device.session.Crashlytics.Architecture.X86_32;

        public boolean hasArch() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Architecture getArch() {
          return arch_;
        }

        public Builder setArch(
            com.google.firebase.crashlytics.device.session.Crashlytics.Architecture value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000004;
          arch_ = value;
          onChanged();
          return this;
        }

        public Builder clearArch() {
          bitField0_ = (bitField0_ & ~0x00000004);
          arch_ = com.google.firebase.crashlytics.device.session.Crashlytics.Architecture.X86_32;
          onChanged();
          return this;
        }

        // optional string model = 4;
        private java.lang.Object model_ = "";

        public boolean hasModel() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }

        public String getModel() {
          java.lang.Object ref = model_;
          if (!(ref instanceof String)) {
            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
            model_ = s;
            return s;
          } else {
            return (String) ref;
          }
        }

        public Builder setModel(String value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000008;
          model_ = value;
          onChanged();
          return this;
        }

        public Builder clearModel() {
          bitField0_ = (bitField0_ & ~0x00000008);
          model_ = getDefaultInstance().getModel();
          onChanged();
          return this;
        }

        void setModel(com.google.protobuf.ByteString value) {
          bitField0_ |= 0x00000008;
          model_ = value;
          onChanged();
        }

        // optional uint32 cores = 5;
        private int cores_;

        public boolean hasCores() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }

        public int getCores() {
          return cores_;
        }

        public Builder setCores(int value) {
          bitField0_ |= 0x00000010;
          cores_ = value;
          onChanged();
          return this;
        }

        public Builder clearCores() {
          bitField0_ = (bitField0_ & ~0x00000010);
          cores_ = 0;
          onChanged();
          return this;
        }

        // optional uint64 ram = 6;
        private long ram_;

        public boolean hasRam() {
          return ((bitField0_ & 0x00000020) == 0x00000020);
        }

        public long getRam() {
          return ram_;
        }

        public Builder setRam(long value) {
          bitField0_ |= 0x00000020;
          ram_ = value;
          onChanged();
          return this;
        }

        public Builder clearRam() {
          bitField0_ = (bitField0_ & ~0x00000020);
          ram_ = 0L;
          onChanged();
          return this;
        }

        // optional uint64 disk_space = 7;
        private long diskSpace_;

        public boolean hasDiskSpace() {
          return ((bitField0_ & 0x00000040) == 0x00000040);
        }

        public long getDiskSpace() {
          return diskSpace_;
        }

        public Builder setDiskSpace(long value) {
          bitField0_ |= 0x00000040;
          diskSpace_ = value;
          onChanged();
          return this;
        }

        public Builder clearDiskSpace() {
          bitField0_ = (bitField0_ & ~0x00000040);
          diskSpace_ = 0L;
          onChanged();
          return this;
        }

        // optional string user_agent = 8;
        private java.lang.Object userAgent_ = "";

        public boolean hasUserAgent() {
          return ((bitField0_ & 0x00000080) == 0x00000080);
        }

        public String getUserAgent() {
          java.lang.Object ref = userAgent_;
          if (!(ref instanceof String)) {
            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
            userAgent_ = s;
            return s;
          } else {
            return (String) ref;
          }
        }

        public Builder setUserAgent(String value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000080;
          userAgent_ = value;
          onChanged();
          return this;
        }

        public Builder clearUserAgent() {
          bitField0_ = (bitField0_ & ~0x00000080);
          userAgent_ = getDefaultInstance().getUserAgent();
          onChanged();
          return this;
        }

        void setUserAgent(com.google.protobuf.ByteString value) {
          bitField0_ |= 0x00000080;
          userAgent_ = value;
          onChanged();
        }

        // optional string language = 9;
        private java.lang.Object language_ = "";

        public boolean hasLanguage() {
          return ((bitField0_ & 0x00000100) == 0x00000100);
        }

        public String getLanguage() {
          java.lang.Object ref = language_;
          if (!(ref instanceof String)) {
            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
            language_ = s;
            return s;
          } else {
            return (String) ref;
          }
        }

        public Builder setLanguage(String value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000100;
          language_ = value;
          onChanged();
          return this;
        }

        public Builder clearLanguage() {
          bitField0_ = (bitField0_ & ~0x00000100);
          language_ = getDefaultInstance().getLanguage();
          onChanged();
          return this;
        }

        void setLanguage(com.google.protobuf.ByteString value) {
          bitField0_ |= 0x00000100;
          language_ = value;
          onChanged();
        }

        // optional bool simulator = 10;
        private boolean simulator_;

        public boolean hasSimulator() {
          return ((bitField0_ & 0x00000200) == 0x00000200);
        }

        public boolean getSimulator() {
          return simulator_;
        }

        public Builder setSimulator(boolean value) {
          bitField0_ |= 0x00000200;
          simulator_ = value;
          onChanged();
          return this;
        }

        public Builder clearSimulator() {
          bitField0_ = (bitField0_ & ~0x00000200);
          simulator_ = false;
          onChanged();
          return this;
        }

        // repeated .Crashlytics.Session.Device.Identifier identifiers = 11;
        private java.util.List<
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                    .Identifier>
            identifiers_ = java.util.Collections.emptyList();

        private void ensureIdentifiersIsMutable() {
          if (!((bitField0_ & 0x00000400) == 0x00000400)) {
            identifiers_ =
                new java.util.ArrayList<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                        .Identifier>(identifiers_);
            bitField0_ |= 0x00000400;
          }
        }

        private com.google.protobuf.RepeatedFieldBuilder<
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                    .Identifier,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.Identifier
                    .Builder,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                    .IdentifierOrBuilder>
            identifiersBuilder_;

        public java.util.List<
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                    .Identifier>
            getIdentifiersList() {
          if (identifiersBuilder_ == null) {
            return java.util.Collections.unmodifiableList(identifiers_);
          } else {
            return identifiersBuilder_.getMessageList();
          }
        }

        public int getIdentifiersCount() {
          if (identifiersBuilder_ == null) {
            return identifiers_.size();
          } else {
            return identifiersBuilder_.getCount();
          }
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.Identifier
            getIdentifiers(int index) {
          if (identifiersBuilder_ == null) {
            return identifiers_.get(index);
          } else {
            return identifiersBuilder_.getMessage(index);
          }
        }

        public Builder setIdentifiers(
            int index,
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.Identifier
                value) {
          if (identifiersBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureIdentifiersIsMutable();
            identifiers_.set(index, value);
            onChanged();
          } else {
            identifiersBuilder_.setMessage(index, value);
          }
          return this;
        }

        public Builder setIdentifiers(
            int index,
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.Identifier
                    .Builder
                builderForValue) {
          if (identifiersBuilder_ == null) {
            ensureIdentifiersIsMutable();
            identifiers_.set(index, builderForValue.build());
            onChanged();
          } else {
            identifiersBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }

        public Builder addIdentifiers(
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.Identifier
                value) {
          if (identifiersBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureIdentifiersIsMutable();
            identifiers_.add(value);
            onChanged();
          } else {
            identifiersBuilder_.addMessage(value);
          }
          return this;
        }

        public Builder addIdentifiers(
            int index,
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.Identifier
                value) {
          if (identifiersBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureIdentifiersIsMutable();
            identifiers_.add(index, value);
            onChanged();
          } else {
            identifiersBuilder_.addMessage(index, value);
          }
          return this;
        }

        public Builder addIdentifiers(
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.Identifier
                    .Builder
                builderForValue) {
          if (identifiersBuilder_ == null) {
            ensureIdentifiersIsMutable();
            identifiers_.add(builderForValue.build());
            onChanged();
          } else {
            identifiersBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }

        public Builder addIdentifiers(
            int index,
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.Identifier
                    .Builder
                builderForValue) {
          if (identifiersBuilder_ == null) {
            ensureIdentifiersIsMutable();
            identifiers_.add(index, builderForValue.build());
            onChanged();
          } else {
            identifiersBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }

        public Builder addAllIdentifiers(
            java.lang.Iterable<
                    ? extends
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                            .Identifier>
                values) {
          if (identifiersBuilder_ == null) {
            ensureIdentifiersIsMutable();
            super.addAll(values, identifiers_);
            onChanged();
          } else {
            identifiersBuilder_.addAllMessages(values);
          }
          return this;
        }

        public Builder clearIdentifiers() {
          if (identifiersBuilder_ == null) {
            identifiers_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000400);
            onChanged();
          } else {
            identifiersBuilder_.clear();
          }
          return this;
        }

        public Builder removeIdentifiers(int index) {
          if (identifiersBuilder_ == null) {
            ensureIdentifiersIsMutable();
            identifiers_.remove(index);
            onChanged();
          } else {
            identifiersBuilder_.remove(index);
          }
          return this;
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.Identifier
                .Builder
            getIdentifiersBuilder(int index) {
          return getIdentifiersFieldBuilder().getBuilder(index);
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                .IdentifierOrBuilder
            getIdentifiersOrBuilder(int index) {
          if (identifiersBuilder_ == null) {
            return identifiers_.get(index);
          } else {
            return identifiersBuilder_.getMessageOrBuilder(index);
          }
        }

        public java.util.List<
                ? extends
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                        .IdentifierOrBuilder>
            getIdentifiersOrBuilderList() {
          if (identifiersBuilder_ != null) {
            return identifiersBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(identifiers_);
          }
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.Identifier
                .Builder
            addIdentifiersBuilder() {
          return getIdentifiersFieldBuilder()
              .addBuilder(
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                      .Identifier.getDefaultInstance());
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.Identifier
                .Builder
            addIdentifiersBuilder(int index) {
          return getIdentifiersFieldBuilder()
              .addBuilder(
                  index,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                      .Identifier.getDefaultInstance());
        }

        public java.util.List<
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.Identifier
                    .Builder>
            getIdentifiersBuilderList() {
          return getIdentifiersFieldBuilder().getBuilderList();
        }

        private com.google.protobuf.RepeatedFieldBuilder<
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                    .Identifier,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.Identifier
                    .Builder,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                    .IdentifierOrBuilder>
            getIdentifiersFieldBuilder() {
          if (identifiersBuilder_ == null) {
            identifiersBuilder_ =
                new com.google.protobuf.RepeatedFieldBuilder<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                        .Identifier,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                        .Identifier.Builder,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                        .IdentifierOrBuilder>(
                    identifiers_,
                    ((bitField0_ & 0x00000400) == 0x00000400),
                    getParentForChildren(),
                    isClean());
            identifiers_ = null;
          }
          return identifiersBuilder_;
        }

        // optional uint32 state = 12;
        private int state_;

        public boolean hasState() {
          return ((bitField0_ & 0x00000800) == 0x00000800);
        }

        public int getState() {
          return state_;
        }

        public Builder setState(int value) {
          bitField0_ |= 0x00000800;
          state_ = value;
          onChanged();
          return this;
        }

        public Builder clearState() {
          bitField0_ = (bitField0_ & ~0x00000800);
          state_ = 0;
          onChanged();
          return this;
        }

        // optional string manufacturer = 13;
        private java.lang.Object manufacturer_ = "";

        public boolean hasManufacturer() {
          return ((bitField0_ & 0x00001000) == 0x00001000);
        }

        public String getManufacturer() {
          java.lang.Object ref = manufacturer_;
          if (!(ref instanceof String)) {
            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
            manufacturer_ = s;
            return s;
          } else {
            return (String) ref;
          }
        }

        public Builder setManufacturer(String value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00001000;
          manufacturer_ = value;
          onChanged();
          return this;
        }

        public Builder clearManufacturer() {
          bitField0_ = (bitField0_ & ~0x00001000);
          manufacturer_ = getDefaultInstance().getManufacturer();
          onChanged();
          return this;
        }

        void setManufacturer(com.google.protobuf.ByteString value) {
          bitField0_ |= 0x00001000;
          manufacturer_ = value;
          onChanged();
        }

        // optional string model_class = 14;
        private java.lang.Object modelClass_ = "";

        public boolean hasModelClass() {
          return ((bitField0_ & 0x00002000) == 0x00002000);
        }

        public String getModelClass() {
          java.lang.Object ref = modelClass_;
          if (!(ref instanceof String)) {
            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
            modelClass_ = s;
            return s;
          } else {
            return (String) ref;
          }
        }

        public Builder setModelClass(String value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00002000;
          modelClass_ = value;
          onChanged();
          return this;
        }

        public Builder clearModelClass() {
          bitField0_ = (bitField0_ & ~0x00002000);
          modelClass_ = getDefaultInstance().getModelClass();
          onChanged();
          return this;
        }

        void setModelClass(com.google.protobuf.ByteString value) {
          bitField0_ |= 0x00002000;
          modelClass_ = value;
          onChanged();
        }

        // @@protoc_insertion_point(builder_scope:Crashlytics.Session.Device)
      }

      static {
        defaultInstance = new Device(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:Crashlytics.Session.Device)
    }

    public interface EventOrBuilder extends com.google.protobuf.MessageOrBuilder {

      // required uint64 timestamp = 1;
      boolean hasTimestamp();

      long getTimestamp();

      // required string type = 2;
      boolean hasType();

      String getType();

      // optional string aggregation_id = 7;
      boolean hasAggregationId();

      String getAggregationId();

      // optional .Crashlytics.Session.Event.Application app = 3;
      boolean hasApp();

      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application getApp();

      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.ApplicationOrBuilder
          getAppOrBuilder();

      // optional .Crashlytics.Session.Event.OperatingSystem os = 4;
      boolean hasOs();

      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.OperatingSystem
          getOs();

      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
              .OperatingSystemOrBuilder
          getOsOrBuilder();

      // optional .Crashlytics.Session.Event.Device device = 5;
      boolean hasDevice();

      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device getDevice();

      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.DeviceOrBuilder
          getDeviceOrBuilder();

      // optional .Crashlytics.Session.Event.Log log = 6;
      boolean hasLog();

      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log getLog();

      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.LogOrBuilder
          getLogOrBuilder();
    }

    public static final class Event extends com.google.protobuf.GeneratedMessage
        implements EventOrBuilder {
      // Use Event.newBuilder() to construct.
      private Event(Builder builder) {
        super(builder);
      }

      private Event(boolean noInit) {}

      private static final Event defaultInstance;

      public static Event getDefaultInstance() {
        return defaultInstance;
      }

      public Event getDefaultInstanceForType() {
        return defaultInstance;
      }

      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return com.google.firebase.crashlytics.device.session.Crashlytics
            .internal_static_Crashlytics_Session_Event_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.firebase.crashlytics.device.session.Crashlytics
            .internal_static_Crashlytics_Session_Event_fieldAccessorTable;
      }

      public interface ApplicationOrBuilder extends com.google.protobuf.MessageOrBuilder {

        // required .Crashlytics.Session.Event.Application.Execution execution = 1;
        boolean hasExecution();

        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                .Execution
            getExecution();

        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                .ExecutionOrBuilder
            getExecutionOrBuilder();

        // repeated .Crashlytics.CustomAttribute custom_attributes = 2;
        java.util.List<com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute>
            getCustomAttributesList();

        com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
            getCustomAttributes(int index);

        int getCustomAttributesCount();

        java.util.List<
                ? extends
                    com.google.firebase.crashlytics.device.session.Crashlytics
                        .CustomAttributeOrBuilder>
            getCustomAttributesOrBuilderList();

        com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttributeOrBuilder
            getCustomAttributesOrBuilder(int index);

        // optional bool background = 3;
        boolean hasBackground();

        boolean getBackground();

        // optional uint32 ui_orientation = 4;
        boolean hasUiOrientation();

        int getUiOrientation();
      }

      public static final class Application extends com.google.protobuf.GeneratedMessage
          implements ApplicationOrBuilder {
        // Use Application.newBuilder() to construct.
        private Application(Builder builder) {
          super(builder);
        }

        private Application(boolean noInit) {}

        private static final Application defaultInstance;

        public static Application getDefaultInstance() {
          return defaultInstance;
        }

        public Application getDefaultInstanceForType() {
          return defaultInstance;
        }

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
          return com.google.firebase.crashlytics.device.session.Crashlytics
              .internal_static_Crashlytics_Session_Event_Application_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.firebase.crashlytics.device.session.Crashlytics
              .internal_static_Crashlytics_Session_Event_Application_fieldAccessorTable;
        }

        public interface ExecutionOrBuilder extends com.google.protobuf.MessageOrBuilder {

          // repeated .Crashlytics.Session.Event.Application.Execution.Thread threads = 1;
          java.util.List<
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread>
              getThreadsList();

          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                  .Execution.Thread
              getThreads(int index);

          int getThreadsCount();

          java.util.List<
                  ? extends
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.ThreadOrBuilder>
              getThreadsOrBuilderList();

          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                  .Execution.ThreadOrBuilder
              getThreadsOrBuilder(int index);

          // optional .Crashlytics.Session.Event.Application.Execution.Exception exception = 2;
          boolean hasException();

          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                  .Execution.Exception
              getException();

          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                  .Execution.ExceptionOrBuilder
              getExceptionOrBuilder();

          // required .Crashlytics.Session.Event.Application.Execution.Signal signal = 3;
          boolean hasSignal();

          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                  .Execution.Signal
              getSignal();

          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                  .Execution.SignalOrBuilder
              getSignalOrBuilder();

          // repeated .Crashlytics.Session.Event.Application.Execution.BinaryImage binaries = 4;
          java.util.List<
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.BinaryImage>
              getBinariesList();

          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                  .Execution.BinaryImage
              getBinaries(int index);

          int getBinariesCount();

          java.util.List<
                  ? extends
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.BinaryImageOrBuilder>
              getBinariesOrBuilderList();

          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                  .Execution.BinaryImageOrBuilder
              getBinariesOrBuilder(int index);
        }

        public static final class Execution extends com.google.protobuf.GeneratedMessage
            implements ExecutionOrBuilder {
          // Use Execution.newBuilder() to construct.
          private Execution(Builder builder) {
            super(builder);
          }

          private Execution(boolean noInit) {}

          private static final Execution defaultInstance;

          public static Execution getDefaultInstance() {
            return defaultInstance;
          }

          public Execution getDefaultInstanceForType() {
            return defaultInstance;
          }

          public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return com.google.firebase.crashlytics.device.session.Crashlytics
                .internal_static_Crashlytics_Session_Event_Application_Execution_descriptor;
          }

          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return com.google.firebase.crashlytics.device.session.Crashlytics
                .internal_static_Crashlytics_Session_Event_Application_Execution_fieldAccessorTable;
          }

          public interface ThreadOrBuilder extends com.google.protobuf.MessageOrBuilder {

            // optional string name = 1;
            boolean hasName();

            String getName();

            // required uint32 importance = 2;
            boolean hasImportance();

            int getImportance();

            // repeated .Crashlytics.Session.Event.Application.Execution.Thread.Frame frames = 3;
            java.util.List<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Thread.Frame>
                getFramesList();

            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                    .Execution.Thread.Frame
                getFrames(int index);

            int getFramesCount();

            java.util.List<
                    ? extends
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.Thread.FrameOrBuilder>
                getFramesOrBuilderList();

            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                    .Execution.Thread.FrameOrBuilder
                getFramesOrBuilder(int index);

            // repeated .Crashlytics.Session.Event.Application.Execution.Thread.Register registers =
            // 4;
            java.util.List<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Thread.Register>
                getRegistersList();

            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                    .Execution.Thread.Register
                getRegisters(int index);

            int getRegistersCount();

            java.util.List<
                    ? extends
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.Thread.RegisterOrBuilder>
                getRegistersOrBuilderList();

            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                    .Execution.Thread.RegisterOrBuilder
                getRegistersOrBuilder(int index);

            // optional string alternate_name = 5;
            boolean hasAlternateName();

            String getAlternateName();

            // optional string objc_selector_name = 6;
            boolean hasObjcSelectorName();

            String getObjcSelectorName();
          }

          public static final class Thread extends com.google.protobuf.GeneratedMessage
              implements ThreadOrBuilder {
            // Use Thread.newBuilder() to construct.
            private Thread(Builder builder) {
              super(builder);
            }

            private Thread(boolean noInit) {}

            private static final Thread defaultInstance;

            public static Thread getDefaultInstance() {
              return defaultInstance;
            }

            public Thread getDefaultInstanceForType() {
              return defaultInstance;
            }

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
              return com.google.firebase.crashlytics.device.session.Crashlytics
                  .internal_static_Crashlytics_Session_Event_Application_Execution_Thread_descriptor;
            }

            protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
                internalGetFieldAccessorTable() {
              return com.google.firebase.crashlytics.device.session.Crashlytics
                  .internal_static_Crashlytics_Session_Event_Application_Execution_Thread_fieldAccessorTable;
            }

            public interface FrameOrBuilder extends com.google.protobuf.MessageOrBuilder {

              // required uint64 pc = 1;
              boolean hasPc();

              long getPc();

              // optional string symbol = 2;
              boolean hasSymbol();

              String getSymbol();

              // optional string file = 3;
              boolean hasFile();

              String getFile();

              // optional uint64 offset = 4;
              boolean hasOffset();

              long getOffset();

              // optional uint32 importance = 5;
              boolean hasImportance();

              int getImportance();

              // optional string expanded_symbol = 6;
              boolean hasExpandedSymbol();

              String getExpandedSymbol();

              // optional string expanded_file = 7;
              boolean hasExpandedFile();

              String getExpandedFile();

              // optional uint64 expanded_offset = 8;
              boolean hasExpandedOffset();

              long getExpandedOffset();

              // optional uint32 properties = 9;
              boolean hasProperties();

              int getProperties();

              // optional uint64 line_number = 10;
              boolean hasLineNumber();

              long getLineNumber();

              // optional uint64 address_offset = 11;
              boolean hasAddressOffset();

              long getAddressOffset();
            }

            public static final class Frame extends com.google.protobuf.GeneratedMessage
                implements FrameOrBuilder {
              // Use Frame.newBuilder() to construct.
              private Frame(Builder builder) {
                super(builder);
              }

              private Frame(boolean noInit) {}

              private static final Frame defaultInstance;

              public static Frame getDefaultInstance() {
                return defaultInstance;
              }

              public Frame getDefaultInstanceForType() {
                return defaultInstance;
              }

              public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return com.google.firebase.crashlytics.device.session.Crashlytics
                    .internal_static_Crashlytics_Session_Event_Application_Execution_Thread_Frame_descriptor;
              }

              protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
                  internalGetFieldAccessorTable() {
                return com.google.firebase.crashlytics.device.session.Crashlytics
                    .internal_static_Crashlytics_Session_Event_Application_Execution_Thread_Frame_fieldAccessorTable;
              }

              private int bitField0_;
              // required uint64 pc = 1;
              public static final int PC_FIELD_NUMBER = 1;
              private long pc_;

              public boolean hasPc() {
                return ((bitField0_ & 0x00000001) == 0x00000001);
              }

              public long getPc() {
                return pc_;
              }

              // optional string symbol = 2;
              public static final int SYMBOL_FIELD_NUMBER = 2;
              private java.lang.Object symbol_;

              public boolean hasSymbol() {
                return ((bitField0_ & 0x00000002) == 0x00000002);
              }

              public String getSymbol() {
                java.lang.Object ref = symbol_;
                if (ref instanceof String) {
                  return (String) ref;
                } else {
                  com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                  String s = bs.toStringUtf8();
                  if (com.google.protobuf.Internal.isValidUtf8(bs)) {
                    symbol_ = s;
                  }
                  return s;
                }
              }

              private com.google.protobuf.ByteString getSymbolBytes() {
                java.lang.Object ref = symbol_;
                if (ref instanceof String) {
                  com.google.protobuf.ByteString b =
                      com.google.protobuf.ByteString.copyFromUtf8((String) ref);
                  symbol_ = b;
                  return b;
                } else {
                  return (com.google.protobuf.ByteString) ref;
                }
              }

              // optional string file = 3;
              public static final int FILE_FIELD_NUMBER = 3;
              private java.lang.Object file_;

              public boolean hasFile() {
                return ((bitField0_ & 0x00000004) == 0x00000004);
              }

              public String getFile() {
                java.lang.Object ref = file_;
                if (ref instanceof String) {
                  return (String) ref;
                } else {
                  com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                  String s = bs.toStringUtf8();
                  if (com.google.protobuf.Internal.isValidUtf8(bs)) {
                    file_ = s;
                  }
                  return s;
                }
              }

              private com.google.protobuf.ByteString getFileBytes() {
                java.lang.Object ref = file_;
                if (ref instanceof String) {
                  com.google.protobuf.ByteString b =
                      com.google.protobuf.ByteString.copyFromUtf8((String) ref);
                  file_ = b;
                  return b;
                } else {
                  return (com.google.protobuf.ByteString) ref;
                }
              }

              // optional uint64 offset = 4;
              public static final int OFFSET_FIELD_NUMBER = 4;
              private long offset_;

              public boolean hasOffset() {
                return ((bitField0_ & 0x00000008) == 0x00000008);
              }

              public long getOffset() {
                return offset_;
              }

              // optional uint32 importance = 5;
              public static final int IMPORTANCE_FIELD_NUMBER = 5;
              private int importance_;

              public boolean hasImportance() {
                return ((bitField0_ & 0x00000010) == 0x00000010);
              }

              public int getImportance() {
                return importance_;
              }

              // optional string expanded_symbol = 6;
              public static final int EXPANDED_SYMBOL_FIELD_NUMBER = 6;
              private java.lang.Object expandedSymbol_;

              public boolean hasExpandedSymbol() {
                return ((bitField0_ & 0x00000020) == 0x00000020);
              }

              public String getExpandedSymbol() {
                java.lang.Object ref = expandedSymbol_;
                if (ref instanceof String) {
                  return (String) ref;
                } else {
                  com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                  String s = bs.toStringUtf8();
                  if (com.google.protobuf.Internal.isValidUtf8(bs)) {
                    expandedSymbol_ = s;
                  }
                  return s;
                }
              }

              private com.google.protobuf.ByteString getExpandedSymbolBytes() {
                java.lang.Object ref = expandedSymbol_;
                if (ref instanceof String) {
                  com.google.protobuf.ByteString b =
                      com.google.protobuf.ByteString.copyFromUtf8((String) ref);
                  expandedSymbol_ = b;
                  return b;
                } else {
                  return (com.google.protobuf.ByteString) ref;
                }
              }

              // optional string expanded_file = 7;
              public static final int EXPANDED_FILE_FIELD_NUMBER = 7;
              private java.lang.Object expandedFile_;

              public boolean hasExpandedFile() {
                return ((bitField0_ & 0x00000040) == 0x00000040);
              }

              public String getExpandedFile() {
                java.lang.Object ref = expandedFile_;
                if (ref instanceof String) {
                  return (String) ref;
                } else {
                  com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                  String s = bs.toStringUtf8();
                  if (com.google.protobuf.Internal.isValidUtf8(bs)) {
                    expandedFile_ = s;
                  }
                  return s;
                }
              }

              private com.google.protobuf.ByteString getExpandedFileBytes() {
                java.lang.Object ref = expandedFile_;
                if (ref instanceof String) {
                  com.google.protobuf.ByteString b =
                      com.google.protobuf.ByteString.copyFromUtf8((String) ref);
                  expandedFile_ = b;
                  return b;
                } else {
                  return (com.google.protobuf.ByteString) ref;
                }
              }

              // optional uint64 expanded_offset = 8;
              public static final int EXPANDED_OFFSET_FIELD_NUMBER = 8;
              private long expandedOffset_;

              public boolean hasExpandedOffset() {
                return ((bitField0_ & 0x00000080) == 0x00000080);
              }

              public long getExpandedOffset() {
                return expandedOffset_;
              }

              // optional uint32 properties = 9;
              public static final int PROPERTIES_FIELD_NUMBER = 9;
              private int properties_;

              public boolean hasProperties() {
                return ((bitField0_ & 0x00000100) == 0x00000100);
              }

              public int getProperties() {
                return properties_;
              }

              // optional uint64 line_number = 10;
              public static final int LINE_NUMBER_FIELD_NUMBER = 10;
              private long lineNumber_;

              public boolean hasLineNumber() {
                return ((bitField0_ & 0x00000200) == 0x00000200);
              }

              public long getLineNumber() {
                return lineNumber_;
              }

              // optional uint64 address_offset = 11;
              public static final int ADDRESS_OFFSET_FIELD_NUMBER = 11;
              private long addressOffset_;

              public boolean hasAddressOffset() {
                return ((bitField0_ & 0x00000400) == 0x00000400);
              }

              public long getAddressOffset() {
                return addressOffset_;
              }

              private void initFields() {
                pc_ = 0L;
                symbol_ = "";
                file_ = "";
                offset_ = 0L;
                importance_ = 0;
                expandedSymbol_ = "";
                expandedFile_ = "";
                expandedOffset_ = 0L;
                properties_ = 0;
                lineNumber_ = 0L;
                addressOffset_ = 0L;
              }

              private byte memoizedIsInitialized = -1;

              public final boolean isInitialized() {
                byte isInitialized = memoizedIsInitialized;
                if (isInitialized != -1) return isInitialized == 1;

                if (!hasPc()) {
                  memoizedIsInitialized = 0;
                  return false;
                }
                memoizedIsInitialized = 1;
                return true;
              }

              public void writeTo(com.google.protobuf.CodedOutputStream output)
                  throws java.io.IOException {
                getSerializedSize();
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  output.writeUInt64(1, pc_);
                }
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  output.writeBytes(2, getSymbolBytes());
                }
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  output.writeBytes(3, getFileBytes());
                }
                if (((bitField0_ & 0x00000008) == 0x00000008)) {
                  output.writeUInt64(4, offset_);
                }
                if (((bitField0_ & 0x00000010) == 0x00000010)) {
                  output.writeUInt32(5, importance_);
                }
                if (((bitField0_ & 0x00000020) == 0x00000020)) {
                  output.writeBytes(6, getExpandedSymbolBytes());
                }
                if (((bitField0_ & 0x00000040) == 0x00000040)) {
                  output.writeBytes(7, getExpandedFileBytes());
                }
                if (((bitField0_ & 0x00000080) == 0x00000080)) {
                  output.writeUInt64(8, expandedOffset_);
                }
                if (((bitField0_ & 0x00000100) == 0x00000100)) {
                  output.writeUInt32(9, properties_);
                }
                if (((bitField0_ & 0x00000200) == 0x00000200)) {
                  output.writeUInt64(10, lineNumber_);
                }
                if (((bitField0_ & 0x00000400) == 0x00000400)) {
                  output.writeUInt64(11, addressOffset_);
                }
                getUnknownFields().writeTo(output);
              }

              private int memoizedSerializedSize = -1;

              public int getSerializedSize() {
                int size = memoizedSerializedSize;
                if (size != -1) return size;

                size = 0;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  size += com.google.protobuf.CodedOutputStream.computeUInt64Size(1, pc_);
                }
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  size +=
                      com.google.protobuf.CodedOutputStream.computeBytesSize(2, getSymbolBytes());
                }
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  size += com.google.protobuf.CodedOutputStream.computeBytesSize(3, getFileBytes());
                }
                if (((bitField0_ & 0x00000008) == 0x00000008)) {
                  size += com.google.protobuf.CodedOutputStream.computeUInt64Size(4, offset_);
                }
                if (((bitField0_ & 0x00000010) == 0x00000010)) {
                  size += com.google.protobuf.CodedOutputStream.computeUInt32Size(5, importance_);
                }
                if (((bitField0_ & 0x00000020) == 0x00000020)) {
                  size +=
                      com.google.protobuf.CodedOutputStream.computeBytesSize(
                          6, getExpandedSymbolBytes());
                }
                if (((bitField0_ & 0x00000040) == 0x00000040)) {
                  size +=
                      com.google.protobuf.CodedOutputStream.computeBytesSize(
                          7, getExpandedFileBytes());
                }
                if (((bitField0_ & 0x00000080) == 0x00000080)) {
                  size +=
                      com.google.protobuf.CodedOutputStream.computeUInt64Size(8, expandedOffset_);
                }
                if (((bitField0_ & 0x00000100) == 0x00000100)) {
                  size += com.google.protobuf.CodedOutputStream.computeUInt32Size(9, properties_);
                }
                if (((bitField0_ & 0x00000200) == 0x00000200)) {
                  size += com.google.protobuf.CodedOutputStream.computeUInt64Size(10, lineNumber_);
                }
                if (((bitField0_ & 0x00000400) == 0x00000400)) {
                  size +=
                      com.google.protobuf.CodedOutputStream.computeUInt64Size(11, addressOffset_);
                }
                size += getUnknownFields().getSerializedSize();
                memoizedSerializedSize = size;
                return size;
              }

              private static final long serialVersionUID = 0L;

              @java.lang.Override
              protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
                return super.writeReplace();
              }

              public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Frame
                  parseFrom(com.google.protobuf.ByteString data)
                      throws com.google.protobuf.InvalidProtocolBufferException {
                return newBuilder().mergeFrom(data).buildParsed();
              }

              public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Frame
                  parseFrom(
                      com.google.protobuf.ByteString data,
                      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                      throws com.google.protobuf.InvalidProtocolBufferException {
                return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
              }

              public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Frame
                  parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
                return newBuilder().mergeFrom(data).buildParsed();
              }

              public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Frame
                  parseFrom(
                      byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                      throws com.google.protobuf.InvalidProtocolBufferException {
                return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
              }

              public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Frame
                  parseFrom(java.io.InputStream input) throws java.io.IOException {
                return newBuilder().mergeFrom(input).buildParsed();
              }

              public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Frame
                  parseFrom(
                      java.io.InputStream input,
                      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                      throws java.io.IOException {
                return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
              }

              public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Frame
                  parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
                Builder builder = newBuilder();
                if (builder.mergeDelimitedFrom(input)) {
                  return builder.buildParsed();
                } else {
                  return null;
                }
              }

              public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Frame
                  parseDelimitedFrom(
                      java.io.InputStream input,
                      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                      throws java.io.IOException {
                Builder builder = newBuilder();
                if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
                  return builder.buildParsed();
                } else {
                  return null;
                }
              }

              public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Frame
                  parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
                return newBuilder().mergeFrom(input).buildParsed();
              }

              public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Frame
                  parseFrom(
                      com.google.protobuf.CodedInputStream input,
                      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                      throws java.io.IOException {
                return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
              }

              public static Builder newBuilder() {
                return Builder.create();
              }

              public Builder newBuilderForType() {
                return newBuilder();
              }

              public static Builder newBuilder(
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Frame
                      prototype) {
                return newBuilder().mergeFrom(prototype);
              }

              public Builder toBuilder() {
                return newBuilder(this);
              }

              @java.lang.Override
              protected Builder newBuilderForType(
                  com.google.protobuf.GeneratedMessage.BuilderParent parent) {
                Builder builder = new Builder(parent);
                return builder;
              }

              public static final class Builder
                  extends com.google.protobuf.GeneratedMessage.Builder<Builder>
                  implements com.google.firebase.crashlytics.device.session.Crashlytics.Session
                      .Event.Application.Execution.Thread.FrameOrBuilder {
                public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                  return com.google.firebase.crashlytics.device.session.Crashlytics
                      .internal_static_Crashlytics_Session_Event_Application_Execution_Thread_Frame_descriptor;
                }

                protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
                    internalGetFieldAccessorTable() {
                  return com.google.firebase.crashlytics.device.session.Crashlytics
                      .internal_static_Crashlytics_Session_Event_Application_Execution_Thread_Frame_fieldAccessorTable;
                }

                // Construct using
                // com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application.Execution.Thread.Frame.newBuilder()
                private Builder() {
                  maybeForceBuilderInitialization();
                }

                private Builder(BuilderParent parent) {
                  super(parent);
                  maybeForceBuilderInitialization();
                }

                private void maybeForceBuilderInitialization() {
                  if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {}
                }

                private static Builder create() {
                  return new Builder();
                }

                public Builder clear() {
                  super.clear();
                  pc_ = 0L;
                  bitField0_ = (bitField0_ & ~0x00000001);
                  symbol_ = "";
                  bitField0_ = (bitField0_ & ~0x00000002);
                  file_ = "";
                  bitField0_ = (bitField0_ & ~0x00000004);
                  offset_ = 0L;
                  bitField0_ = (bitField0_ & ~0x00000008);
                  importance_ = 0;
                  bitField0_ = (bitField0_ & ~0x00000010);
                  expandedSymbol_ = "";
                  bitField0_ = (bitField0_ & ~0x00000020);
                  expandedFile_ = "";
                  bitField0_ = (bitField0_ & ~0x00000040);
                  expandedOffset_ = 0L;
                  bitField0_ = (bitField0_ & ~0x00000080);
                  properties_ = 0;
                  bitField0_ = (bitField0_ & ~0x00000100);
                  lineNumber_ = 0L;
                  bitField0_ = (bitField0_ & ~0x00000200);
                  addressOffset_ = 0L;
                  bitField0_ = (bitField0_ & ~0x00000400);
                  return this;
                }

                public Builder clone() {
                  return create().mergeFrom(buildPartial());
                }

                public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                  return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Frame.getDescriptor();
                }

                public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Thread.Frame
                    getDefaultInstanceForType() {
                  return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Frame.getDefaultInstance();
                }

                public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Thread.Frame
                    build() {
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Frame
                      result = buildPartial();
                  if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                  }
                  return result;
                }

                private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Thread.Frame
                    buildParsed() throws com.google.protobuf.InvalidProtocolBufferException {
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Frame
                      result = buildPartial();
                  if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result)
                        .asInvalidProtocolBufferException();
                  }
                  return result;
                }

                public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Thread.Frame
                    buildPartial() {
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Frame
                      result =
                          new com.google.firebase.crashlytics.device.session.Crashlytics.Session
                              .Event.Application.Execution.Thread.Frame(this);
                  int from_bitField0_ = bitField0_;
                  int to_bitField0_ = 0;
                  if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
                    to_bitField0_ |= 0x00000001;
                  }
                  result.pc_ = pc_;
                  if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
                    to_bitField0_ |= 0x00000002;
                  }
                  result.symbol_ = symbol_;
                  if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
                    to_bitField0_ |= 0x00000004;
                  }
                  result.file_ = file_;
                  if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
                    to_bitField0_ |= 0x00000008;
                  }
                  result.offset_ = offset_;
                  if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
                    to_bitField0_ |= 0x00000010;
                  }
                  result.importance_ = importance_;
                  if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
                    to_bitField0_ |= 0x00000020;
                  }
                  result.expandedSymbol_ = expandedSymbol_;
                  if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
                    to_bitField0_ |= 0x00000040;
                  }
                  result.expandedFile_ = expandedFile_;
                  if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
                    to_bitField0_ |= 0x00000080;
                  }
                  result.expandedOffset_ = expandedOffset_;
                  if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
                    to_bitField0_ |= 0x00000100;
                  }
                  result.properties_ = properties_;
                  if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
                    to_bitField0_ |= 0x00000200;
                  }
                  result.lineNumber_ = lineNumber_;
                  if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
                    to_bitField0_ |= 0x00000400;
                  }
                  result.addressOffset_ = addressOffset_;
                  result.bitField0_ = to_bitField0_;
                  onBuilt();
                  return result;
                }

                public Builder mergeFrom(com.google.protobuf.Message other) {
                  if (other
                      instanceof
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Frame) {
                    return mergeFrom(
                        (com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                                .Application.Execution.Thread.Frame)
                            other);
                  } else {
                    super.mergeFrom(other);
                    return this;
                  }
                }

                public Builder mergeFrom(
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.Thread.Frame
                        other) {
                  if (other
                      == com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Frame.getDefaultInstance()) return this;
                  if (other.hasPc()) {
                    setPc(other.getPc());
                  }
                  if (other.hasSymbol()) {
                    setSymbol(other.getSymbol());
                  }
                  if (other.hasFile()) {
                    setFile(other.getFile());
                  }
                  if (other.hasOffset()) {
                    setOffset(other.getOffset());
                  }
                  if (other.hasImportance()) {
                    setImportance(other.getImportance());
                  }
                  if (other.hasExpandedSymbol()) {
                    setExpandedSymbol(other.getExpandedSymbol());
                  }
                  if (other.hasExpandedFile()) {
                    setExpandedFile(other.getExpandedFile());
                  }
                  if (other.hasExpandedOffset()) {
                    setExpandedOffset(other.getExpandedOffset());
                  }
                  if (other.hasProperties()) {
                    setProperties(other.getProperties());
                  }
                  if (other.hasLineNumber()) {
                    setLineNumber(other.getLineNumber());
                  }
                  if (other.hasAddressOffset()) {
                    setAddressOffset(other.getAddressOffset());
                  }
                  this.mergeUnknownFields(other.getUnknownFields());
                  return this;
                }

                public final boolean isInitialized() {
                  if (!hasPc()) {

                    return false;
                  }
                  return true;
                }

                public Builder mergeFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                  com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                      com.google.protobuf.UnknownFieldSet.newBuilder(this.getUnknownFields());
                  while (true) {
                    int tag = input.readTag();
                    switch (tag) {
                      case 0:
                        this.setUnknownFields(unknownFields.build());
                        onChanged();
                        return this;
                      default:
                        {
                          if (!parseUnknownField(
                              input, unknownFields,
                              extensionRegistry, tag)) {
                            this.setUnknownFields(unknownFields.build());
                            onChanged();
                            return this;
                          }
                          break;
                        }
                      case 8:
                        {
                          bitField0_ |= 0x00000001;
                          pc_ = input.readUInt64();
                          break;
                        }
                      case 18:
                        {
                          bitField0_ |= 0x00000002;
                          symbol_ = input.readBytes();
                          break;
                        }
                      case 26:
                        {
                          bitField0_ |= 0x00000004;
                          file_ = input.readBytes();
                          break;
                        }
                      case 32:
                        {
                          bitField0_ |= 0x00000008;
                          offset_ = input.readUInt64();
                          break;
                        }
                      case 40:
                        {
                          bitField0_ |= 0x00000010;
                          importance_ = input.readUInt32();
                          break;
                        }
                      case 50:
                        {
                          bitField0_ |= 0x00000020;
                          expandedSymbol_ = input.readBytes();
                          break;
                        }
                      case 58:
                        {
                          bitField0_ |= 0x00000040;
                          expandedFile_ = input.readBytes();
                          break;
                        }
                      case 64:
                        {
                          bitField0_ |= 0x00000080;
                          expandedOffset_ = input.readUInt64();
                          break;
                        }
                      case 72:
                        {
                          bitField0_ |= 0x00000100;
                          properties_ = input.readUInt32();
                          break;
                        }
                      case 80:
                        {
                          bitField0_ |= 0x00000200;
                          lineNumber_ = input.readUInt64();
                          break;
                        }
                      case 88:
                        {
                          bitField0_ |= 0x00000400;
                          addressOffset_ = input.readUInt64();
                          break;
                        }
                    }
                  }
                }

                private int bitField0_;

                // required uint64 pc = 1;
                private long pc_;

                public boolean hasPc() {
                  return ((bitField0_ & 0x00000001) == 0x00000001);
                }

                public long getPc() {
                  return pc_;
                }

                public Builder setPc(long value) {
                  bitField0_ |= 0x00000001;
                  pc_ = value;
                  onChanged();
                  return this;
                }

                public Builder clearPc() {
                  bitField0_ = (bitField0_ & ~0x00000001);
                  pc_ = 0L;
                  onChanged();
                  return this;
                }

                // optional string symbol = 2;
                private java.lang.Object symbol_ = "";

                public boolean hasSymbol() {
                  return ((bitField0_ & 0x00000002) == 0x00000002);
                }

                public String getSymbol() {
                  java.lang.Object ref = symbol_;
                  if (!(ref instanceof String)) {
                    String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
                    symbol_ = s;
                    return s;
                  } else {
                    return (String) ref;
                  }
                }

                public Builder setSymbol(String value) {
                  if (value == null) {
                    throw new NullPointerException();
                  }
                  bitField0_ |= 0x00000002;
                  symbol_ = value;
                  onChanged();
                  return this;
                }

                public Builder clearSymbol() {
                  bitField0_ = (bitField0_ & ~0x00000002);
                  symbol_ = getDefaultInstance().getSymbol();
                  onChanged();
                  return this;
                }

                void setSymbol(com.google.protobuf.ByteString value) {
                  bitField0_ |= 0x00000002;
                  symbol_ = value;
                  onChanged();
                }

                // optional string file = 3;
                private java.lang.Object file_ = "";

                public boolean hasFile() {
                  return ((bitField0_ & 0x00000004) == 0x00000004);
                }

                public String getFile() {
                  java.lang.Object ref = file_;
                  if (!(ref instanceof String)) {
                    String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
                    file_ = s;
                    return s;
                  } else {
                    return (String) ref;
                  }
                }

                public Builder setFile(String value) {
                  if (value == null) {
                    throw new NullPointerException();
                  }
                  bitField0_ |= 0x00000004;
                  file_ = value;
                  onChanged();
                  return this;
                }

                public Builder clearFile() {
                  bitField0_ = (bitField0_ & ~0x00000004);
                  file_ = getDefaultInstance().getFile();
                  onChanged();
                  return this;
                }

                void setFile(com.google.protobuf.ByteString value) {
                  bitField0_ |= 0x00000004;
                  file_ = value;
                  onChanged();
                }

                // optional uint64 offset = 4;
                private long offset_;

                public boolean hasOffset() {
                  return ((bitField0_ & 0x00000008) == 0x00000008);
                }

                public long getOffset() {
                  return offset_;
                }

                public Builder setOffset(long value) {
                  bitField0_ |= 0x00000008;
                  offset_ = value;
                  onChanged();
                  return this;
                }

                public Builder clearOffset() {
                  bitField0_ = (bitField0_ & ~0x00000008);
                  offset_ = 0L;
                  onChanged();
                  return this;
                }

                // optional uint32 importance = 5;
                private int importance_;

                public boolean hasImportance() {
                  return ((bitField0_ & 0x00000010) == 0x00000010);
                }

                public int getImportance() {
                  return importance_;
                }

                public Builder setImportance(int value) {
                  bitField0_ |= 0x00000010;
                  importance_ = value;
                  onChanged();
                  return this;
                }

                public Builder clearImportance() {
                  bitField0_ = (bitField0_ & ~0x00000010);
                  importance_ = 0;
                  onChanged();
                  return this;
                }

                // optional string expanded_symbol = 6;
                private java.lang.Object expandedSymbol_ = "";

                public boolean hasExpandedSymbol() {
                  return ((bitField0_ & 0x00000020) == 0x00000020);
                }

                public String getExpandedSymbol() {
                  java.lang.Object ref = expandedSymbol_;
                  if (!(ref instanceof String)) {
                    String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
                    expandedSymbol_ = s;
                    return s;
                  } else {
                    return (String) ref;
                  }
                }

                public Builder setExpandedSymbol(String value) {
                  if (value == null) {
                    throw new NullPointerException();
                  }
                  bitField0_ |= 0x00000020;
                  expandedSymbol_ = value;
                  onChanged();
                  return this;
                }

                public Builder clearExpandedSymbol() {
                  bitField0_ = (bitField0_ & ~0x00000020);
                  expandedSymbol_ = getDefaultInstance().getExpandedSymbol();
                  onChanged();
                  return this;
                }

                void setExpandedSymbol(com.google.protobuf.ByteString value) {
                  bitField0_ |= 0x00000020;
                  expandedSymbol_ = value;
                  onChanged();
                }

                // optional string expanded_file = 7;
                private java.lang.Object expandedFile_ = "";

                public boolean hasExpandedFile() {
                  return ((bitField0_ & 0x00000040) == 0x00000040);
                }

                public String getExpandedFile() {
                  java.lang.Object ref = expandedFile_;
                  if (!(ref instanceof String)) {
                    String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
                    expandedFile_ = s;
                    return s;
                  } else {
                    return (String) ref;
                  }
                }

                public Builder setExpandedFile(String value) {
                  if (value == null) {
                    throw new NullPointerException();
                  }
                  bitField0_ |= 0x00000040;
                  expandedFile_ = value;
                  onChanged();
                  return this;
                }

                public Builder clearExpandedFile() {
                  bitField0_ = (bitField0_ & ~0x00000040);
                  expandedFile_ = getDefaultInstance().getExpandedFile();
                  onChanged();
                  return this;
                }

                void setExpandedFile(com.google.protobuf.ByteString value) {
                  bitField0_ |= 0x00000040;
                  expandedFile_ = value;
                  onChanged();
                }

                // optional uint64 expanded_offset = 8;
                private long expandedOffset_;

                public boolean hasExpandedOffset() {
                  return ((bitField0_ & 0x00000080) == 0x00000080);
                }

                public long getExpandedOffset() {
                  return expandedOffset_;
                }

                public Builder setExpandedOffset(long value) {
                  bitField0_ |= 0x00000080;
                  expandedOffset_ = value;
                  onChanged();
                  return this;
                }

                public Builder clearExpandedOffset() {
                  bitField0_ = (bitField0_ & ~0x00000080);
                  expandedOffset_ = 0L;
                  onChanged();
                  return this;
                }

                // optional uint32 properties = 9;
                private int properties_;

                public boolean hasProperties() {
                  return ((bitField0_ & 0x00000100) == 0x00000100);
                }

                public int getProperties() {
                  return properties_;
                }

                public Builder setProperties(int value) {
                  bitField0_ |= 0x00000100;
                  properties_ = value;
                  onChanged();
                  return this;
                }

                public Builder clearProperties() {
                  bitField0_ = (bitField0_ & ~0x00000100);
                  properties_ = 0;
                  onChanged();
                  return this;
                }

                // optional uint64 line_number = 10;
                private long lineNumber_;

                public boolean hasLineNumber() {
                  return ((bitField0_ & 0x00000200) == 0x00000200);
                }

                public long getLineNumber() {
                  return lineNumber_;
                }

                public Builder setLineNumber(long value) {
                  bitField0_ |= 0x00000200;
                  lineNumber_ = value;
                  onChanged();
                  return this;
                }

                public Builder clearLineNumber() {
                  bitField0_ = (bitField0_ & ~0x00000200);
                  lineNumber_ = 0L;
                  onChanged();
                  return this;
                }

                // optional uint64 address_offset = 11;
                private long addressOffset_;

                public boolean hasAddressOffset() {
                  return ((bitField0_ & 0x00000400) == 0x00000400);
                }

                public long getAddressOffset() {
                  return addressOffset_;
                }

                public Builder setAddressOffset(long value) {
                  bitField0_ |= 0x00000400;
                  addressOffset_ = value;
                  onChanged();
                  return this;
                }

                public Builder clearAddressOffset() {
                  bitField0_ = (bitField0_ & ~0x00000400);
                  addressOffset_ = 0L;
                  onChanged();
                  return this;
                }

                // @@protoc_insertion_point(builder_scope:Crashlytics.Session.Event.Application.Execution.Thread.Frame)
              }

              static {
                defaultInstance = new Frame(true);
                defaultInstance.initFields();
              }

              // @@protoc_insertion_point(class_scope:Crashlytics.Session.Event.Application.Execution.Thread.Frame)
            }

            public interface RegisterOrBuilder extends com.google.protobuf.MessageOrBuilder {

              // required string name = 1;
              boolean hasName();

              String getName();

              // required uint64 value = 2;
              boolean hasValue();

              long getValue();
            }

            public static final class Register extends com.google.protobuf.GeneratedMessage
                implements RegisterOrBuilder {
              // Use Register.newBuilder() to construct.
              private Register(Builder builder) {
                super(builder);
              }

              private Register(boolean noInit) {}

              private static final Register defaultInstance;

              public static Register getDefaultInstance() {
                return defaultInstance;
              }

              public Register getDefaultInstanceForType() {
                return defaultInstance;
              }

              public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return com.google.firebase.crashlytics.device.session.Crashlytics
                    .internal_static_Crashlytics_Session_Event_Application_Execution_Thread_Register_descriptor;
              }

              protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
                  internalGetFieldAccessorTable() {
                return com.google.firebase.crashlytics.device.session.Crashlytics
                    .internal_static_Crashlytics_Session_Event_Application_Execution_Thread_Register_fieldAccessorTable;
              }

              private int bitField0_;
              // required string name = 1;
              public static final int NAME_FIELD_NUMBER = 1;
              private java.lang.Object name_;

              public boolean hasName() {
                return ((bitField0_ & 0x00000001) == 0x00000001);
              }

              public String getName() {
                java.lang.Object ref = name_;
                if (ref instanceof String) {
                  return (String) ref;
                } else {
                  com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                  String s = bs.toStringUtf8();
                  if (com.google.protobuf.Internal.isValidUtf8(bs)) {
                    name_ = s;
                  }
                  return s;
                }
              }

              private com.google.protobuf.ByteString getNameBytes() {
                java.lang.Object ref = name_;
                if (ref instanceof String) {
                  com.google.protobuf.ByteString b =
                      com.google.protobuf.ByteString.copyFromUtf8((String) ref);
                  name_ = b;
                  return b;
                } else {
                  return (com.google.protobuf.ByteString) ref;
                }
              }

              // required uint64 value = 2;
              public static final int VALUE_FIELD_NUMBER = 2;
              private long value_;

              public boolean hasValue() {
                return ((bitField0_ & 0x00000002) == 0x00000002);
              }

              public long getValue() {
                return value_;
              }

              private void initFields() {
                name_ = "";
                value_ = 0L;
              }

              private byte memoizedIsInitialized = -1;

              public final boolean isInitialized() {
                byte isInitialized = memoizedIsInitialized;
                if (isInitialized != -1) return isInitialized == 1;

                if (!hasName()) {
                  memoizedIsInitialized = 0;
                  return false;
                }
                if (!hasValue()) {
                  memoizedIsInitialized = 0;
                  return false;
                }
                memoizedIsInitialized = 1;
                return true;
              }

              public void writeTo(com.google.protobuf.CodedOutputStream output)
                  throws java.io.IOException {
                getSerializedSize();
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  output.writeBytes(1, getNameBytes());
                }
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  output.writeUInt64(2, value_);
                }
                getUnknownFields().writeTo(output);
              }

              private int memoizedSerializedSize = -1;

              public int getSerializedSize() {
                int size = memoizedSerializedSize;
                if (size != -1) return size;

                size = 0;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  size += com.google.protobuf.CodedOutputStream.computeBytesSize(1, getNameBytes());
                }
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  size += com.google.protobuf.CodedOutputStream.computeUInt64Size(2, value_);
                }
                size += getUnknownFields().getSerializedSize();
                memoizedSerializedSize = size;
                return size;
              }

              private static final long serialVersionUID = 0L;

              @java.lang.Override
              protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
                return super.writeReplace();
              }

              public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Register
                  parseFrom(com.google.protobuf.ByteString data)
                      throws com.google.protobuf.InvalidProtocolBufferException {
                return newBuilder().mergeFrom(data).buildParsed();
              }

              public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Register
                  parseFrom(
                      com.google.protobuf.ByteString data,
                      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                      throws com.google.protobuf.InvalidProtocolBufferException {
                return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
              }

              public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Register
                  parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
                return newBuilder().mergeFrom(data).buildParsed();
              }

              public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Register
                  parseFrom(
                      byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                      throws com.google.protobuf.InvalidProtocolBufferException {
                return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
              }

              public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Register
                  parseFrom(java.io.InputStream input) throws java.io.IOException {
                return newBuilder().mergeFrom(input).buildParsed();
              }

              public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Register
                  parseFrom(
                      java.io.InputStream input,
                      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                      throws java.io.IOException {
                return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
              }

              public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Register
                  parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
                Builder builder = newBuilder();
                if (builder.mergeDelimitedFrom(input)) {
                  return builder.buildParsed();
                } else {
                  return null;
                }
              }

              public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Register
                  parseDelimitedFrom(
                      java.io.InputStream input,
                      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                      throws java.io.IOException {
                Builder builder = newBuilder();
                if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
                  return builder.buildParsed();
                } else {
                  return null;
                }
              }

              public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Register
                  parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
                return newBuilder().mergeFrom(input).buildParsed();
              }

              public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Register
                  parseFrom(
                      com.google.protobuf.CodedInputStream input,
                      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                      throws java.io.IOException {
                return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
              }

              public static Builder newBuilder() {
                return Builder.create();
              }

              public Builder newBuilderForType() {
                return newBuilder();
              }

              public static Builder newBuilder(
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Register
                      prototype) {
                return newBuilder().mergeFrom(prototype);
              }

              public Builder toBuilder() {
                return newBuilder(this);
              }

              @java.lang.Override
              protected Builder newBuilderForType(
                  com.google.protobuf.GeneratedMessage.BuilderParent parent) {
                Builder builder = new Builder(parent);
                return builder;
              }

              public static final class Builder
                  extends com.google.protobuf.GeneratedMessage.Builder<Builder>
                  implements com.google.firebase.crashlytics.device.session.Crashlytics.Session
                      .Event.Application.Execution.Thread.RegisterOrBuilder {
                public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                  return com.google.firebase.crashlytics.device.session.Crashlytics
                      .internal_static_Crashlytics_Session_Event_Application_Execution_Thread_Register_descriptor;
                }

                protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
                    internalGetFieldAccessorTable() {
                  return com.google.firebase.crashlytics.device.session.Crashlytics
                      .internal_static_Crashlytics_Session_Event_Application_Execution_Thread_Register_fieldAccessorTable;
                }

                // Construct using
                // com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application.Execution.Thread.Register.newBuilder()
                private Builder() {
                  maybeForceBuilderInitialization();
                }

                private Builder(BuilderParent parent) {
                  super(parent);
                  maybeForceBuilderInitialization();
                }

                private void maybeForceBuilderInitialization() {
                  if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {}
                }

                private static Builder create() {
                  return new Builder();
                }

                public Builder clear() {
                  super.clear();
                  name_ = "";
                  bitField0_ = (bitField0_ & ~0x00000001);
                  value_ = 0L;
                  bitField0_ = (bitField0_ & ~0x00000002);
                  return this;
                }

                public Builder clone() {
                  return create().mergeFrom(buildPartial());
                }

                public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                  return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Register.getDescriptor();
                }

                public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Thread.Register
                    getDefaultInstanceForType() {
                  return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Register.getDefaultInstance();
                }

                public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Thread.Register
                    build() {
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Register
                      result = buildPartial();
                  if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                  }
                  return result;
                }

                private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Thread.Register
                    buildParsed() throws com.google.protobuf.InvalidProtocolBufferException {
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Register
                      result = buildPartial();
                  if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result)
                        .asInvalidProtocolBufferException();
                  }
                  return result;
                }

                public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Thread.Register
                    buildPartial() {
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Register
                      result =
                          new com.google.firebase.crashlytics.device.session.Crashlytics.Session
                              .Event.Application.Execution.Thread.Register(this);
                  int from_bitField0_ = bitField0_;
                  int to_bitField0_ = 0;
                  if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
                    to_bitField0_ |= 0x00000001;
                  }
                  result.name_ = name_;
                  if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
                    to_bitField0_ |= 0x00000002;
                  }
                  result.value_ = value_;
                  result.bitField0_ = to_bitField0_;
                  onBuilt();
                  return result;
                }

                public Builder mergeFrom(com.google.protobuf.Message other) {
                  if (other
                      instanceof
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Register) {
                    return mergeFrom(
                        (com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                                .Application.Execution.Thread.Register)
                            other);
                  } else {
                    super.mergeFrom(other);
                    return this;
                  }
                }

                public Builder mergeFrom(
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.Thread.Register
                        other) {
                  if (other
                      == com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Register.getDefaultInstance()) return this;
                  if (other.hasName()) {
                    setName(other.getName());
                  }
                  if (other.hasValue()) {
                    setValue(other.getValue());
                  }
                  this.mergeUnknownFields(other.getUnknownFields());
                  return this;
                }

                public final boolean isInitialized() {
                  if (!hasName()) {

                    return false;
                  }
                  if (!hasValue()) {

                    return false;
                  }
                  return true;
                }

                public Builder mergeFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                  com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                      com.google.protobuf.UnknownFieldSet.newBuilder(this.getUnknownFields());
                  while (true) {
                    int tag = input.readTag();
                    switch (tag) {
                      case 0:
                        this.setUnknownFields(unknownFields.build());
                        onChanged();
                        return this;
                      default:
                        {
                          if (!parseUnknownField(
                              input, unknownFields,
                              extensionRegistry, tag)) {
                            this.setUnknownFields(unknownFields.build());
                            onChanged();
                            return this;
                          }
                          break;
                        }
                      case 10:
                        {
                          bitField0_ |= 0x00000001;
                          name_ = input.readBytes();
                          break;
                        }
                      case 16:
                        {
                          bitField0_ |= 0x00000002;
                          value_ = input.readUInt64();
                          break;
                        }
                    }
                  }
                }

                private int bitField0_;

                // required string name = 1;
                private java.lang.Object name_ = "";

                public boolean hasName() {
                  return ((bitField0_ & 0x00000001) == 0x00000001);
                }

                public String getName() {
                  java.lang.Object ref = name_;
                  if (!(ref instanceof String)) {
                    String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
                    name_ = s;
                    return s;
                  } else {
                    return (String) ref;
                  }
                }

                public Builder setName(String value) {
                  if (value == null) {
                    throw new NullPointerException();
                  }
                  bitField0_ |= 0x00000001;
                  name_ = value;
                  onChanged();
                  return this;
                }

                public Builder clearName() {
                  bitField0_ = (bitField0_ & ~0x00000001);
                  name_ = getDefaultInstance().getName();
                  onChanged();
                  return this;
                }

                void setName(com.google.protobuf.ByteString value) {
                  bitField0_ |= 0x00000001;
                  name_ = value;
                  onChanged();
                }

                // required uint64 value = 2;
                private long value_;

                public boolean hasValue() {
                  return ((bitField0_ & 0x00000002) == 0x00000002);
                }

                public long getValue() {
                  return value_;
                }

                public Builder setValue(long value) {
                  bitField0_ |= 0x00000002;
                  value_ = value;
                  onChanged();
                  return this;
                }

                public Builder clearValue() {
                  bitField0_ = (bitField0_ & ~0x00000002);
                  value_ = 0L;
                  onChanged();
                  return this;
                }

                // @@protoc_insertion_point(builder_scope:Crashlytics.Session.Event.Application.Execution.Thread.Register)
              }

              static {
                defaultInstance = new Register(true);
                defaultInstance.initFields();
              }

              // @@protoc_insertion_point(class_scope:Crashlytics.Session.Event.Application.Execution.Thread.Register)
            }

            private int bitField0_;
            // optional string name = 1;
            public static final int NAME_FIELD_NUMBER = 1;
            private java.lang.Object name_;

            public boolean hasName() {
              return ((bitField0_ & 0x00000001) == 0x00000001);
            }

            public String getName() {
              java.lang.Object ref = name_;
              if (ref instanceof String) {
                return (String) ref;
              } else {
                com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                String s = bs.toStringUtf8();
                if (com.google.protobuf.Internal.isValidUtf8(bs)) {
                  name_ = s;
                }
                return s;
              }
            }

            private com.google.protobuf.ByteString getNameBytes() {
              java.lang.Object ref = name_;
              if (ref instanceof String) {
                com.google.protobuf.ByteString b =
                    com.google.protobuf.ByteString.copyFromUtf8((String) ref);
                name_ = b;
                return b;
              } else {
                return (com.google.protobuf.ByteString) ref;
              }
            }

            // required uint32 importance = 2;
            public static final int IMPORTANCE_FIELD_NUMBER = 2;
            private int importance_;

            public boolean hasImportance() {
              return ((bitField0_ & 0x00000002) == 0x00000002);
            }

            public int getImportance() {
              return importance_;
            }

            // repeated .Crashlytics.Session.Event.Application.Execution.Thread.Frame frames = 3;
            public static final int FRAMES_FIELD_NUMBER = 3;
            private java.util.List<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Thread.Frame>
                frames_;

            public java.util.List<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Thread.Frame>
                getFramesList() {
              return frames_;
            }

            public java.util.List<
                    ? extends
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.Thread.FrameOrBuilder>
                getFramesOrBuilderList() {
              return frames_;
            }

            public int getFramesCount() {
              return frames_.size();
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Thread.Frame
                getFrames(int index) {
              return frames_.get(index);
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Thread.FrameOrBuilder
                getFramesOrBuilder(int index) {
              return frames_.get(index);
            }

            // repeated .Crashlytics.Session.Event.Application.Execution.Thread.Register registers =
            // 4;
            public static final int REGISTERS_FIELD_NUMBER = 4;
            private java.util.List<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Thread.Register>
                registers_;

            public java.util.List<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Thread.Register>
                getRegistersList() {
              return registers_;
            }

            public java.util.List<
                    ? extends
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.Thread.RegisterOrBuilder>
                getRegistersOrBuilderList() {
              return registers_;
            }

            public int getRegistersCount() {
              return registers_.size();
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Thread.Register
                getRegisters(int index) {
              return registers_.get(index);
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Thread.RegisterOrBuilder
                getRegistersOrBuilder(int index) {
              return registers_.get(index);
            }

            // optional string alternate_name = 5;
            public static final int ALTERNATE_NAME_FIELD_NUMBER = 5;
            private java.lang.Object alternateName_;

            public boolean hasAlternateName() {
              return ((bitField0_ & 0x00000004) == 0x00000004);
            }

            public String getAlternateName() {
              java.lang.Object ref = alternateName_;
              if (ref instanceof String) {
                return (String) ref;
              } else {
                com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                String s = bs.toStringUtf8();
                if (com.google.protobuf.Internal.isValidUtf8(bs)) {
                  alternateName_ = s;
                }
                return s;
              }
            }

            private com.google.protobuf.ByteString getAlternateNameBytes() {
              java.lang.Object ref = alternateName_;
              if (ref instanceof String) {
                com.google.protobuf.ByteString b =
                    com.google.protobuf.ByteString.copyFromUtf8((String) ref);
                alternateName_ = b;
                return b;
              } else {
                return (com.google.protobuf.ByteString) ref;
              }
            }

            // optional string objc_selector_name = 6;
            public static final int OBJC_SELECTOR_NAME_FIELD_NUMBER = 6;
            private java.lang.Object objcSelectorName_;

            public boolean hasObjcSelectorName() {
              return ((bitField0_ & 0x00000008) == 0x00000008);
            }

            public String getObjcSelectorName() {
              java.lang.Object ref = objcSelectorName_;
              if (ref instanceof String) {
                return (String) ref;
              } else {
                com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                String s = bs.toStringUtf8();
                if (com.google.protobuf.Internal.isValidUtf8(bs)) {
                  objcSelectorName_ = s;
                }
                return s;
              }
            }

            private com.google.protobuf.ByteString getObjcSelectorNameBytes() {
              java.lang.Object ref = objcSelectorName_;
              if (ref instanceof String) {
                com.google.protobuf.ByteString b =
                    com.google.protobuf.ByteString.copyFromUtf8((String) ref);
                objcSelectorName_ = b;
                return b;
              } else {
                return (com.google.protobuf.ByteString) ref;
              }
            }

            private void initFields() {
              name_ = "";
              importance_ = 0;
              frames_ = java.util.Collections.emptyList();
              registers_ = java.util.Collections.emptyList();
              alternateName_ = "";
              objcSelectorName_ = "";
            }

            private byte memoizedIsInitialized = -1;

            public final boolean isInitialized() {
              byte isInitialized = memoizedIsInitialized;
              if (isInitialized != -1) return isInitialized == 1;

              if (!hasImportance()) {
                memoizedIsInitialized = 0;
                return false;
              }
              for (int i = 0; i < getFramesCount(); i++) {
                if (!getFrames(i).isInitialized()) {
                  memoizedIsInitialized = 0;
                  return false;
                }
              }
              for (int i = 0; i < getRegistersCount(); i++) {
                if (!getRegisters(i).isInitialized()) {
                  memoizedIsInitialized = 0;
                  return false;
                }
              }
              memoizedIsInitialized = 1;
              return true;
            }

            public void writeTo(com.google.protobuf.CodedOutputStream output)
                throws java.io.IOException {
              getSerializedSize();
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                output.writeBytes(1, getNameBytes());
              }
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                output.writeUInt32(2, importance_);
              }
              for (int i = 0; i < frames_.size(); i++) {
                output.writeMessage(3, frames_.get(i));
              }
              for (int i = 0; i < registers_.size(); i++) {
                output.writeMessage(4, registers_.get(i));
              }
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                output.writeBytes(5, getAlternateNameBytes());
              }
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                output.writeBytes(6, getObjcSelectorNameBytes());
              }
              getUnknownFields().writeTo(output);
            }

            private int memoizedSerializedSize = -1;

            public int getSerializedSize() {
              int size = memoizedSerializedSize;
              if (size != -1) return size;

              size = 0;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                size += com.google.protobuf.CodedOutputStream.computeBytesSize(1, getNameBytes());
              }
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                size += com.google.protobuf.CodedOutputStream.computeUInt32Size(2, importance_);
              }
              for (int i = 0; i < frames_.size(); i++) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, frames_.get(i));
              }
              for (int i = 0; i < registers_.size(); i++) {
                size +=
                    com.google.protobuf.CodedOutputStream.computeMessageSize(4, registers_.get(i));
              }
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                size +=
                    com.google.protobuf.CodedOutputStream.computeBytesSize(
                        5, getAlternateNameBytes());
              }
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                size +=
                    com.google.protobuf.CodedOutputStream.computeBytesSize(
                        6, getObjcSelectorNameBytes());
              }
              size += getUnknownFields().getSerializedSize();
              memoizedSerializedSize = size;
              return size;
            }

            private static final long serialVersionUID = 0L;

            @java.lang.Override
            protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
              return super.writeReplace();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Thread
                parseFrom(com.google.protobuf.ByteString data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
              return newBuilder().mergeFrom(data).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Thread
                parseFrom(
                    com.google.protobuf.ByteString data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
              return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Thread
                parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
              return newBuilder().mergeFrom(data).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Thread
                parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
              return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Thread
                parseFrom(java.io.InputStream input) throws java.io.IOException {
              return newBuilder().mergeFrom(input).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Thread
                parseFrom(
                    java.io.InputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
              return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Thread
                parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
              Builder builder = newBuilder();
              if (builder.mergeDelimitedFrom(input)) {
                return builder.buildParsed();
              } else {
                return null;
              }
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Thread
                parseDelimitedFrom(
                    java.io.InputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
              Builder builder = newBuilder();
              if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
                return builder.buildParsed();
              } else {
                return null;
              }
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Thread
                parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
              return newBuilder().mergeFrom(input).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Thread
                parseFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
              return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
            }

            public static Builder newBuilder() {
              return Builder.create();
            }

            public Builder newBuilderForType() {
              return newBuilder();
            }

            public static Builder newBuilder(
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.Thread
                    prototype) {
              return newBuilder().mergeFrom(prototype);
            }

            public Builder toBuilder() {
              return newBuilder(this);
            }

            @java.lang.Override
            protected Builder newBuilderForType(
                com.google.protobuf.GeneratedMessage.BuilderParent parent) {
              Builder builder = new Builder(parent);
              return builder;
            }

            public static final class Builder
                extends com.google.protobuf.GeneratedMessage.Builder<Builder>
                implements com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.ThreadOrBuilder {
              public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return com.google.firebase.crashlytics.device.session.Crashlytics
                    .internal_static_Crashlytics_Session_Event_Application_Execution_Thread_descriptor;
              }

              protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
                  internalGetFieldAccessorTable() {
                return com.google.firebase.crashlytics.device.session.Crashlytics
                    .internal_static_Crashlytics_Session_Event_Application_Execution_Thread_fieldAccessorTable;
              }

              // Construct using
              // com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application.Execution.Thread.newBuilder()
              private Builder() {
                maybeForceBuilderInitialization();
              }

              private Builder(BuilderParent parent) {
                super(parent);
                maybeForceBuilderInitialization();
              }

              private void maybeForceBuilderInitialization() {
                if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
                  getFramesFieldBuilder();
                  getRegistersFieldBuilder();
                }
              }

              private static Builder create() {
                return new Builder();
              }

              public Builder clear() {
                super.clear();
                name_ = "";
                bitField0_ = (bitField0_ & ~0x00000001);
                importance_ = 0;
                bitField0_ = (bitField0_ & ~0x00000002);
                if (framesBuilder_ == null) {
                  frames_ = java.util.Collections.emptyList();
                  bitField0_ = (bitField0_ & ~0x00000004);
                } else {
                  framesBuilder_.clear();
                }
                if (registersBuilder_ == null) {
                  registers_ = java.util.Collections.emptyList();
                  bitField0_ = (bitField0_ & ~0x00000008);
                } else {
                  registersBuilder_.clear();
                }
                alternateName_ = "";
                bitField0_ = (bitField0_ & ~0x00000010);
                objcSelectorName_ = "";
                bitField0_ = (bitField0_ & ~0x00000020);
                return this;
              }

              public Builder clone() {
                return create().mergeFrom(buildPartial());
              }

              public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Thread.getDescriptor();
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread
                  getDefaultInstanceForType() {
                return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Thread.getDefaultInstance();
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread
                  build() {
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.Thread
                    result = buildPartial();
                if (!result.isInitialized()) {
                  throw newUninitializedMessageException(result);
                }
                return result;
              }

              private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread
                  buildParsed() throws com.google.protobuf.InvalidProtocolBufferException {
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.Thread
                    result = buildPartial();
                if (!result.isInitialized()) {
                  throw newUninitializedMessageException(result).asInvalidProtocolBufferException();
                }
                return result;
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread
                  buildPartial() {
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.Thread
                    result =
                        new com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.Thread(this);
                int from_bitField0_ = bitField0_;
                int to_bitField0_ = 0;
                if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
                  to_bitField0_ |= 0x00000001;
                }
                result.name_ = name_;
                if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
                  to_bitField0_ |= 0x00000002;
                }
                result.importance_ = importance_;
                if (framesBuilder_ == null) {
                  if (((bitField0_ & 0x00000004) == 0x00000004)) {
                    frames_ = java.util.Collections.unmodifiableList(frames_);
                    bitField0_ = (bitField0_ & ~0x00000004);
                  }
                  result.frames_ = frames_;
                } else {
                  result.frames_ = framesBuilder_.build();
                }
                if (registersBuilder_ == null) {
                  if (((bitField0_ & 0x00000008) == 0x00000008)) {
                    registers_ = java.util.Collections.unmodifiableList(registers_);
                    bitField0_ = (bitField0_ & ~0x00000008);
                  }
                  result.registers_ = registers_;
                } else {
                  result.registers_ = registersBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
                  to_bitField0_ |= 0x00000004;
                }
                result.alternateName_ = alternateName_;
                if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
                  to_bitField0_ |= 0x00000008;
                }
                result.objcSelectorName_ = objcSelectorName_;
                result.bitField0_ = to_bitField0_;
                onBuilt();
                return result;
              }

              public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other
                    instanceof
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Thread) {
                  return mergeFrom(
                      (com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .Application.Execution.Thread)
                          other);
                } else {
                  super.mergeFrom(other);
                  return this;
                }
              }

              public Builder mergeFrom(
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread
                      other) {
                if (other
                    == com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Thread.getDefaultInstance()) return this;
                if (other.hasName()) {
                  setName(other.getName());
                }
                if (other.hasImportance()) {
                  setImportance(other.getImportance());
                }
                if (framesBuilder_ == null) {
                  if (!other.frames_.isEmpty()) {
                    if (frames_.isEmpty()) {
                      frames_ = other.frames_;
                      bitField0_ = (bitField0_ & ~0x00000004);
                    } else {
                      ensureFramesIsMutable();
                      frames_.addAll(other.frames_);
                    }
                    onChanged();
                  }
                } else {
                  if (!other.frames_.isEmpty()) {
                    if (framesBuilder_.isEmpty()) {
                      framesBuilder_.dispose();
                      framesBuilder_ = null;
                      frames_ = other.frames_;
                      bitField0_ = (bitField0_ & ~0x00000004);
                      framesBuilder_ =
                          com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders
                              ? getFramesFieldBuilder()
                              : null;
                    } else {
                      framesBuilder_.addAllMessages(other.frames_);
                    }
                  }
                }
                if (registersBuilder_ == null) {
                  if (!other.registers_.isEmpty()) {
                    if (registers_.isEmpty()) {
                      registers_ = other.registers_;
                      bitField0_ = (bitField0_ & ~0x00000008);
                    } else {
                      ensureRegistersIsMutable();
                      registers_.addAll(other.registers_);
                    }
                    onChanged();
                  }
                } else {
                  if (!other.registers_.isEmpty()) {
                    if (registersBuilder_.isEmpty()) {
                      registersBuilder_.dispose();
                      registersBuilder_ = null;
                      registers_ = other.registers_;
                      bitField0_ = (bitField0_ & ~0x00000008);
                      registersBuilder_ =
                          com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders
                              ? getRegistersFieldBuilder()
                              : null;
                    } else {
                      registersBuilder_.addAllMessages(other.registers_);
                    }
                  }
                }
                if (other.hasAlternateName()) {
                  setAlternateName(other.getAlternateName());
                }
                if (other.hasObjcSelectorName()) {
                  setObjcSelectorName(other.getObjcSelectorName());
                }
                this.mergeUnknownFields(other.getUnknownFields());
                return this;
              }

              public final boolean isInitialized() {
                if (!hasImportance()) {

                  return false;
                }
                for (int i = 0; i < getFramesCount(); i++) {
                  if (!getFrames(i).isInitialized()) {

                    return false;
                  }
                }
                for (int i = 0; i < getRegistersCount(); i++) {
                  if (!getRegisters(i).isInitialized()) {

                    return false;
                  }
                }
                return true;
              }

              public Builder mergeFrom(
                  com.google.protobuf.CodedInputStream input,
                  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                  throws java.io.IOException {
                com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                    com.google.protobuf.UnknownFieldSet.newBuilder(this.getUnknownFields());
                while (true) {
                  int tag = input.readTag();
                  switch (tag) {
                    case 0:
                      this.setUnknownFields(unknownFields.build());
                      onChanged();
                      return this;
                    default:
                      {
                        if (!parseUnknownField(
                            input, unknownFields,
                            extensionRegistry, tag)) {
                          this.setUnknownFields(unknownFields.build());
                          onChanged();
                          return this;
                        }
                        break;
                      }
                    case 10:
                      {
                        bitField0_ |= 0x00000001;
                        name_ = input.readBytes();
                        break;
                      }
                    case 16:
                      {
                        bitField0_ |= 0x00000002;
                        importance_ = input.readUInt32();
                        break;
                      }
                    case 26:
                      {
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                                .Application.Execution.Thread.Frame.Builder
                            subBuilder =
                                com.google.firebase.crashlytics.device.session.Crashlytics.Session
                                    .Event.Application.Execution.Thread.Frame.newBuilder();
                        input.readMessage(subBuilder, extensionRegistry);
                        addFrames(subBuilder.buildPartial());
                        break;
                      }
                    case 34:
                      {
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                                .Application.Execution.Thread.Register.Builder
                            subBuilder =
                                com.google.firebase.crashlytics.device.session.Crashlytics.Session
                                    .Event.Application.Execution.Thread.Register.newBuilder();
                        input.readMessage(subBuilder, extensionRegistry);
                        addRegisters(subBuilder.buildPartial());
                        break;
                      }
                    case 42:
                      {
                        bitField0_ |= 0x00000010;
                        alternateName_ = input.readBytes();
                        break;
                      }
                    case 50:
                      {
                        bitField0_ |= 0x00000020;
                        objcSelectorName_ = input.readBytes();
                        break;
                      }
                  }
                }
              }

              private int bitField0_;

              // optional string name = 1;
              private java.lang.Object name_ = "";

              public boolean hasName() {
                return ((bitField0_ & 0x00000001) == 0x00000001);
              }

              public String getName() {
                java.lang.Object ref = name_;
                if (!(ref instanceof String)) {
                  String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
                  name_ = s;
                  return s;
                } else {
                  return (String) ref;
                }
              }

              public Builder setName(String value) {
                if (value == null) {
                  throw new NullPointerException();
                }
                bitField0_ |= 0x00000001;
                name_ = value;
                onChanged();
                return this;
              }

              public Builder clearName() {
                bitField0_ = (bitField0_ & ~0x00000001);
                name_ = getDefaultInstance().getName();
                onChanged();
                return this;
              }

              void setName(com.google.protobuf.ByteString value) {
                bitField0_ |= 0x00000001;
                name_ = value;
                onChanged();
              }

              // required uint32 importance = 2;
              private int importance_;

              public boolean hasImportance() {
                return ((bitField0_ & 0x00000002) == 0x00000002);
              }

              public int getImportance() {
                return importance_;
              }

              public Builder setImportance(int value) {
                bitField0_ |= 0x00000002;
                importance_ = value;
                onChanged();
                return this;
              }

              public Builder clearImportance() {
                bitField0_ = (bitField0_ & ~0x00000002);
                importance_ = 0;
                onChanged();
                return this;
              }

              // repeated .Crashlytics.Session.Event.Application.Execution.Thread.Frame frames = 3;
              private java.util.List<
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Frame>
                  frames_ = java.util.Collections.emptyList();

              private void ensureFramesIsMutable() {
                if (!((bitField0_ & 0x00000004) == 0x00000004)) {
                  frames_ =
                      new java.util.ArrayList<
                          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .Application.Execution.Thread.Frame>(frames_);
                  bitField0_ |= 0x00000004;
                }
              }

              private com.google.protobuf.RepeatedFieldBuilder<
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Frame,
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Frame.Builder,
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.FrameOrBuilder>
                  framesBuilder_;

              public java.util.List<
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Frame>
                  getFramesList() {
                if (framesBuilder_ == null) {
                  return java.util.Collections.unmodifiableList(frames_);
                } else {
                  return framesBuilder_.getMessageList();
                }
              }

              public int getFramesCount() {
                if (framesBuilder_ == null) {
                  return frames_.size();
                } else {
                  return framesBuilder_.getCount();
                }
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Frame
                  getFrames(int index) {
                if (framesBuilder_ == null) {
                  return frames_.get(index);
                } else {
                  return framesBuilder_.getMessage(index);
                }
              }

              public Builder setFrames(
                  int index,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Frame
                      value) {
                if (framesBuilder_ == null) {
                  if (value == null) {
                    throw new NullPointerException();
                  }
                  ensureFramesIsMutable();
                  frames_.set(index, value);
                  onChanged();
                } else {
                  framesBuilder_.setMessage(index, value);
                }
                return this;
              }

              public Builder setFrames(
                  int index,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Frame.Builder
                      builderForValue) {
                if (framesBuilder_ == null) {
                  ensureFramesIsMutable();
                  frames_.set(index, builderForValue.build());
                  onChanged();
                } else {
                  framesBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
              }

              public Builder addFrames(
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Frame
                      value) {
                if (framesBuilder_ == null) {
                  if (value == null) {
                    throw new NullPointerException();
                  }
                  ensureFramesIsMutable();
                  frames_.add(value);
                  onChanged();
                } else {
                  framesBuilder_.addMessage(value);
                }
                return this;
              }

              public Builder addFrames(
                  int index,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Frame
                      value) {
                if (framesBuilder_ == null) {
                  if (value == null) {
                    throw new NullPointerException();
                  }
                  ensureFramesIsMutable();
                  frames_.add(index, value);
                  onChanged();
                } else {
                  framesBuilder_.addMessage(index, value);
                }
                return this;
              }

              public Builder addFrames(
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Frame.Builder
                      builderForValue) {
                if (framesBuilder_ == null) {
                  ensureFramesIsMutable();
                  frames_.add(builderForValue.build());
                  onChanged();
                } else {
                  framesBuilder_.addMessage(builderForValue.build());
                }
                return this;
              }

              public Builder addFrames(
                  int index,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Frame.Builder
                      builderForValue) {
                if (framesBuilder_ == null) {
                  ensureFramesIsMutable();
                  frames_.add(index, builderForValue.build());
                  onChanged();
                } else {
                  framesBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
              }

              public Builder addAllFrames(
                  java.lang.Iterable<
                          ? extends
                              com.google.firebase.crashlytics.device.session.Crashlytics.Session
                                  .Event.Application.Execution.Thread.Frame>
                      values) {
                if (framesBuilder_ == null) {
                  ensureFramesIsMutable();
                  super.addAll(values, frames_);
                  onChanged();
                } else {
                  framesBuilder_.addAllMessages(values);
                }
                return this;
              }

              public Builder clearFrames() {
                if (framesBuilder_ == null) {
                  frames_ = java.util.Collections.emptyList();
                  bitField0_ = (bitField0_ & ~0x00000004);
                  onChanged();
                } else {
                  framesBuilder_.clear();
                }
                return this;
              }

              public Builder removeFrames(int index) {
                if (framesBuilder_ == null) {
                  ensureFramesIsMutable();
                  frames_.remove(index);
                  onChanged();
                } else {
                  framesBuilder_.remove(index);
                }
                return this;
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Frame.Builder
                  getFramesBuilder(int index) {
                return getFramesFieldBuilder().getBuilder(index);
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.FrameOrBuilder
                  getFramesOrBuilder(int index) {
                if (framesBuilder_ == null) {
                  return frames_.get(index);
                } else {
                  return framesBuilder_.getMessageOrBuilder(index);
                }
              }

              public java.util.List<
                      ? extends
                          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .Application.Execution.Thread.FrameOrBuilder>
                  getFramesOrBuilderList() {
                if (framesBuilder_ != null) {
                  return framesBuilder_.getMessageOrBuilderList();
                } else {
                  return java.util.Collections.unmodifiableList(frames_);
                }
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Frame.Builder
                  addFramesBuilder() {
                return getFramesFieldBuilder()
                    .addBuilder(
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.Thread.Frame.getDefaultInstance());
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Frame.Builder
                  addFramesBuilder(int index) {
                return getFramesFieldBuilder()
                    .addBuilder(
                        index,
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.Thread.Frame.getDefaultInstance());
              }

              public java.util.List<
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Frame.Builder>
                  getFramesBuilderList() {
                return getFramesFieldBuilder().getBuilderList();
              }

              private com.google.protobuf.RepeatedFieldBuilder<
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Frame,
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Frame.Builder,
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.FrameOrBuilder>
                  getFramesFieldBuilder() {
                if (framesBuilder_ == null) {
                  framesBuilder_ =
                      new com.google.protobuf.RepeatedFieldBuilder<
                          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .Application.Execution.Thread.Frame,
                          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .Application.Execution.Thread.Frame.Builder,
                          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .Application.Execution.Thread.FrameOrBuilder>(
                          frames_,
                          ((bitField0_ & 0x00000004) == 0x00000004),
                          getParentForChildren(),
                          isClean());
                  frames_ = null;
                }
                return framesBuilder_;
              }

              // repeated .Crashlytics.Session.Event.Application.Execution.Thread.Register registers
              // = 4;
              private java.util.List<
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Register>
                  registers_ = java.util.Collections.emptyList();

              private void ensureRegistersIsMutable() {
                if (!((bitField0_ & 0x00000008) == 0x00000008)) {
                  registers_ =
                      new java.util.ArrayList<
                          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .Application.Execution.Thread.Register>(registers_);
                  bitField0_ |= 0x00000008;
                }
              }

              private com.google.protobuf.RepeatedFieldBuilder<
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Register,
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Register.Builder,
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.RegisterOrBuilder>
                  registersBuilder_;

              public java.util.List<
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Register>
                  getRegistersList() {
                if (registersBuilder_ == null) {
                  return java.util.Collections.unmodifiableList(registers_);
                } else {
                  return registersBuilder_.getMessageList();
                }
              }

              public int getRegistersCount() {
                if (registersBuilder_ == null) {
                  return registers_.size();
                } else {
                  return registersBuilder_.getCount();
                }
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Register
                  getRegisters(int index) {
                if (registersBuilder_ == null) {
                  return registers_.get(index);
                } else {
                  return registersBuilder_.getMessage(index);
                }
              }

              public Builder setRegisters(
                  int index,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Register
                      value) {
                if (registersBuilder_ == null) {
                  if (value == null) {
                    throw new NullPointerException();
                  }
                  ensureRegistersIsMutable();
                  registers_.set(index, value);
                  onChanged();
                } else {
                  registersBuilder_.setMessage(index, value);
                }
                return this;
              }

              public Builder setRegisters(
                  int index,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Register.Builder
                      builderForValue) {
                if (registersBuilder_ == null) {
                  ensureRegistersIsMutable();
                  registers_.set(index, builderForValue.build());
                  onChanged();
                } else {
                  registersBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
              }

              public Builder addRegisters(
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Register
                      value) {
                if (registersBuilder_ == null) {
                  if (value == null) {
                    throw new NullPointerException();
                  }
                  ensureRegistersIsMutable();
                  registers_.add(value);
                  onChanged();
                } else {
                  registersBuilder_.addMessage(value);
                }
                return this;
              }

              public Builder addRegisters(
                  int index,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Register
                      value) {
                if (registersBuilder_ == null) {
                  if (value == null) {
                    throw new NullPointerException();
                  }
                  ensureRegistersIsMutable();
                  registers_.add(index, value);
                  onChanged();
                } else {
                  registersBuilder_.addMessage(index, value);
                }
                return this;
              }

              public Builder addRegisters(
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Register.Builder
                      builderForValue) {
                if (registersBuilder_ == null) {
                  ensureRegistersIsMutable();
                  registers_.add(builderForValue.build());
                  onChanged();
                } else {
                  registersBuilder_.addMessage(builderForValue.build());
                }
                return this;
              }

              public Builder addRegisters(
                  int index,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Register.Builder
                      builderForValue) {
                if (registersBuilder_ == null) {
                  ensureRegistersIsMutable();
                  registers_.add(index, builderForValue.build());
                  onChanged();
                } else {
                  registersBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
              }

              public Builder addAllRegisters(
                  java.lang.Iterable<
                          ? extends
                              com.google.firebase.crashlytics.device.session.Crashlytics.Session
                                  .Event.Application.Execution.Thread.Register>
                      values) {
                if (registersBuilder_ == null) {
                  ensureRegistersIsMutable();
                  super.addAll(values, registers_);
                  onChanged();
                } else {
                  registersBuilder_.addAllMessages(values);
                }
                return this;
              }

              public Builder clearRegisters() {
                if (registersBuilder_ == null) {
                  registers_ = java.util.Collections.emptyList();
                  bitField0_ = (bitField0_ & ~0x00000008);
                  onChanged();
                } else {
                  registersBuilder_.clear();
                }
                return this;
              }

              public Builder removeRegisters(int index) {
                if (registersBuilder_ == null) {
                  ensureRegistersIsMutable();
                  registers_.remove(index);
                  onChanged();
                } else {
                  registersBuilder_.remove(index);
                }
                return this;
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Register.Builder
                  getRegistersBuilder(int index) {
                return getRegistersFieldBuilder().getBuilder(index);
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.RegisterOrBuilder
                  getRegistersOrBuilder(int index) {
                if (registersBuilder_ == null) {
                  return registers_.get(index);
                } else {
                  return registersBuilder_.getMessageOrBuilder(index);
                }
              }

              public java.util.List<
                      ? extends
                          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .Application.Execution.Thread.RegisterOrBuilder>
                  getRegistersOrBuilderList() {
                if (registersBuilder_ != null) {
                  return registersBuilder_.getMessageOrBuilderList();
                } else {
                  return java.util.Collections.unmodifiableList(registers_);
                }
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Register.Builder
                  addRegistersBuilder() {
                return getRegistersFieldBuilder()
                    .addBuilder(
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.Thread.Register.getDefaultInstance());
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Register.Builder
                  addRegistersBuilder(int index) {
                return getRegistersFieldBuilder()
                    .addBuilder(
                        index,
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.Thread.Register.getDefaultInstance());
              }

              public java.util.List<
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Register.Builder>
                  getRegistersBuilderList() {
                return getRegistersFieldBuilder().getBuilderList();
              }

              private com.google.protobuf.RepeatedFieldBuilder<
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Register,
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Register.Builder,
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.RegisterOrBuilder>
                  getRegistersFieldBuilder() {
                if (registersBuilder_ == null) {
                  registersBuilder_ =
                      new com.google.protobuf.RepeatedFieldBuilder<
                          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .Application.Execution.Thread.Register,
                          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .Application.Execution.Thread.Register.Builder,
                          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .Application.Execution.Thread.RegisterOrBuilder>(
                          registers_,
                          ((bitField0_ & 0x00000008) == 0x00000008),
                          getParentForChildren(),
                          isClean());
                  registers_ = null;
                }
                return registersBuilder_;
              }

              // optional string alternate_name = 5;
              private java.lang.Object alternateName_ = "";

              public boolean hasAlternateName() {
                return ((bitField0_ & 0x00000010) == 0x00000010);
              }

              public String getAlternateName() {
                java.lang.Object ref = alternateName_;
                if (!(ref instanceof String)) {
                  String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
                  alternateName_ = s;
                  return s;
                } else {
                  return (String) ref;
                }
              }

              public Builder setAlternateName(String value) {
                if (value == null) {
                  throw new NullPointerException();
                }
                bitField0_ |= 0x00000010;
                alternateName_ = value;
                onChanged();
                return this;
              }

              public Builder clearAlternateName() {
                bitField0_ = (bitField0_ & ~0x00000010);
                alternateName_ = getDefaultInstance().getAlternateName();
                onChanged();
                return this;
              }

              void setAlternateName(com.google.protobuf.ByteString value) {
                bitField0_ |= 0x00000010;
                alternateName_ = value;
                onChanged();
              }

              // optional string objc_selector_name = 6;
              private java.lang.Object objcSelectorName_ = "";

              public boolean hasObjcSelectorName() {
                return ((bitField0_ & 0x00000020) == 0x00000020);
              }

              public String getObjcSelectorName() {
                java.lang.Object ref = objcSelectorName_;
                if (!(ref instanceof String)) {
                  String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
                  objcSelectorName_ = s;
                  return s;
                } else {
                  return (String) ref;
                }
              }

              public Builder setObjcSelectorName(String value) {
                if (value == null) {
                  throw new NullPointerException();
                }
                bitField0_ |= 0x00000020;
                objcSelectorName_ = value;
                onChanged();
                return this;
              }

              public Builder clearObjcSelectorName() {
                bitField0_ = (bitField0_ & ~0x00000020);
                objcSelectorName_ = getDefaultInstance().getObjcSelectorName();
                onChanged();
                return this;
              }

              void setObjcSelectorName(com.google.protobuf.ByteString value) {
                bitField0_ |= 0x00000020;
                objcSelectorName_ = value;
                onChanged();
              }

              // @@protoc_insertion_point(builder_scope:Crashlytics.Session.Event.Application.Execution.Thread)
            }

            static {
              defaultInstance = new Thread(true);
              defaultInstance.initFields();
            }

            // @@protoc_insertion_point(class_scope:Crashlytics.Session.Event.Application.Execution.Thread)
          }

          public interface ExceptionOrBuilder extends com.google.protobuf.MessageOrBuilder {

            // optional string type = 1;
            boolean hasType();

            String getType();

            // optional string code = 2;
            boolean hasCode();

            String getCode();

            // optional string reason = 3;
            boolean hasReason();

            String getReason();

            // repeated .Crashlytics.Session.Event.Application.Execution.Thread.Frame frames = 4;
            java.util.List<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Thread.Frame>
                getFramesList();

            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                    .Execution.Thread.Frame
                getFrames(int index);

            int getFramesCount();

            java.util.List<
                    ? extends
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.Thread.FrameOrBuilder>
                getFramesOrBuilderList();

            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                    .Execution.Thread.FrameOrBuilder
                getFramesOrBuilder(int index);

            // repeated .Crashlytics.CustomAttribute custom_attributes = 5;
            java.util.List<
                    com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute>
                getCustomAttributesList();

            com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
                getCustomAttributes(int index);

            int getCustomAttributesCount();

            java.util.List<
                    ? extends
                        com.google.firebase.crashlytics.device.session.Crashlytics
                            .CustomAttributeOrBuilder>
                getCustomAttributesOrBuilderList();

            com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttributeOrBuilder
                getCustomAttributesOrBuilder(int index);

            // optional .Crashlytics.Session.Event.Application.Execution.Exception caused_by = 6;
            boolean hasCausedBy();

            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                    .Execution.Exception
                getCausedBy();

            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                    .Execution.ExceptionOrBuilder
                getCausedByOrBuilder();

            // optional uint32 overflow_count = 7;
            boolean hasOverflowCount();

            int getOverflowCount();

            // optional uint32 importance = 8;
            boolean hasImportance();

            int getImportance();
          }

          public static final class Exception extends com.google.protobuf.GeneratedMessage
              implements ExceptionOrBuilder {
            // Use Exception.newBuilder() to construct.
            private Exception(Builder builder) {
              super(builder);
            }

            private Exception(boolean noInit) {}

            private static final Exception defaultInstance;

            public static Exception getDefaultInstance() {
              return defaultInstance;
            }

            public Exception getDefaultInstanceForType() {
              return defaultInstance;
            }

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
              return com.google.firebase.crashlytics.device.session.Crashlytics
                  .internal_static_Crashlytics_Session_Event_Application_Execution_Exception_descriptor;
            }

            protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
                internalGetFieldAccessorTable() {
              return com.google.firebase.crashlytics.device.session.Crashlytics
                  .internal_static_Crashlytics_Session_Event_Application_Execution_Exception_fieldAccessorTable;
            }

            private int bitField0_;
            // optional string type = 1;
            public static final int TYPE_FIELD_NUMBER = 1;
            private java.lang.Object type_;

            public boolean hasType() {
              return ((bitField0_ & 0x00000001) == 0x00000001);
            }

            public String getType() {
              java.lang.Object ref = type_;
              if (ref instanceof String) {
                return (String) ref;
              } else {
                com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                String s = bs.toStringUtf8();
                if (com.google.protobuf.Internal.isValidUtf8(bs)) {
                  type_ = s;
                }
                return s;
              }
            }

            private com.google.protobuf.ByteString getTypeBytes() {
              java.lang.Object ref = type_;
              if (ref instanceof String) {
                com.google.protobuf.ByteString b =
                    com.google.protobuf.ByteString.copyFromUtf8((String) ref);
                type_ = b;
                return b;
              } else {
                return (com.google.protobuf.ByteString) ref;
              }
            }

            // optional string code = 2;
            public static final int CODE_FIELD_NUMBER = 2;
            private java.lang.Object code_;

            public boolean hasCode() {
              return ((bitField0_ & 0x00000002) == 0x00000002);
            }

            public String getCode() {
              java.lang.Object ref = code_;
              if (ref instanceof String) {
                return (String) ref;
              } else {
                com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                String s = bs.toStringUtf8();
                if (com.google.protobuf.Internal.isValidUtf8(bs)) {
                  code_ = s;
                }
                return s;
              }
            }

            private com.google.protobuf.ByteString getCodeBytes() {
              java.lang.Object ref = code_;
              if (ref instanceof String) {
                com.google.protobuf.ByteString b =
                    com.google.protobuf.ByteString.copyFromUtf8((String) ref);
                code_ = b;
                return b;
              } else {
                return (com.google.protobuf.ByteString) ref;
              }
            }

            // optional string reason = 3;
            public static final int REASON_FIELD_NUMBER = 3;
            private java.lang.Object reason_;

            public boolean hasReason() {
              return ((bitField0_ & 0x00000004) == 0x00000004);
            }

            public String getReason() {
              java.lang.Object ref = reason_;
              if (ref instanceof String) {
                return (String) ref;
              } else {
                com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                String s = bs.toStringUtf8();
                if (com.google.protobuf.Internal.isValidUtf8(bs)) {
                  reason_ = s;
                }
                return s;
              }
            }

            private com.google.protobuf.ByteString getReasonBytes() {
              java.lang.Object ref = reason_;
              if (ref instanceof String) {
                com.google.protobuf.ByteString b =
                    com.google.protobuf.ByteString.copyFromUtf8((String) ref);
                reason_ = b;
                return b;
              } else {
                return (com.google.protobuf.ByteString) ref;
              }
            }

            // repeated .Crashlytics.Session.Event.Application.Execution.Thread.Frame frames = 4;
            public static final int FRAMES_FIELD_NUMBER = 4;
            private java.util.List<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Thread.Frame>
                frames_;

            public java.util.List<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Thread.Frame>
                getFramesList() {
              return frames_;
            }

            public java.util.List<
                    ? extends
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.Thread.FrameOrBuilder>
                getFramesOrBuilderList() {
              return frames_;
            }

            public int getFramesCount() {
              return frames_.size();
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Thread.Frame
                getFrames(int index) {
              return frames_.get(index);
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Thread.FrameOrBuilder
                getFramesOrBuilder(int index) {
              return frames_.get(index);
            }

            // repeated .Crashlytics.CustomAttribute custom_attributes = 5;
            public static final int CUSTOM_ATTRIBUTES_FIELD_NUMBER = 5;
            private java.util.List<
                    com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute>
                customAttributes_;

            public java.util.List<
                    com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute>
                getCustomAttributesList() {
              return customAttributes_;
            }

            public java.util.List<
                    ? extends
                        com.google.firebase.crashlytics.device.session.Crashlytics
                            .CustomAttributeOrBuilder>
                getCustomAttributesOrBuilderList() {
              return customAttributes_;
            }

            public int getCustomAttributesCount() {
              return customAttributes_.size();
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
                getCustomAttributes(int index) {
              return customAttributes_.get(index);
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics
                    .CustomAttributeOrBuilder
                getCustomAttributesOrBuilder(int index) {
              return customAttributes_.get(index);
            }

            // optional .Crashlytics.Session.Event.Application.Execution.Exception caused_by = 6;
            public static final int CAUSED_BY_FIELD_NUMBER = 6;
            private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Exception
                causedBy_;

            public boolean hasCausedBy() {
              return ((bitField0_ & 0x00000008) == 0x00000008);
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Exception
                getCausedBy() {
              return causedBy_;
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.ExceptionOrBuilder
                getCausedByOrBuilder() {
              return causedBy_;
            }

            // optional uint32 overflow_count = 7;
            public static final int OVERFLOW_COUNT_FIELD_NUMBER = 7;
            private int overflowCount_;

            public boolean hasOverflowCount() {
              return ((bitField0_ & 0x00000010) == 0x00000010);
            }

            public int getOverflowCount() {
              return overflowCount_;
            }

            // optional uint32 importance = 8;
            public static final int IMPORTANCE_FIELD_NUMBER = 8;
            private int importance_;

            public boolean hasImportance() {
              return ((bitField0_ & 0x00000020) == 0x00000020);
            }

            public int getImportance() {
              return importance_;
            }

            private void initFields() {
              type_ = "";
              code_ = "";
              reason_ = "";
              frames_ = java.util.Collections.emptyList();
              customAttributes_ = java.util.Collections.emptyList();
              causedBy_ =
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Exception.getDefaultInstance();
              overflowCount_ = 0;
              importance_ = 0;
            }

            private byte memoizedIsInitialized = -1;

            public final boolean isInitialized() {
              byte isInitialized = memoizedIsInitialized;
              if (isInitialized != -1) return isInitialized == 1;

              for (int i = 0; i < getFramesCount(); i++) {
                if (!getFrames(i).isInitialized()) {
                  memoizedIsInitialized = 0;
                  return false;
                }
              }
              for (int i = 0; i < getCustomAttributesCount(); i++) {
                if (!getCustomAttributes(i).isInitialized()) {
                  memoizedIsInitialized = 0;
                  return false;
                }
              }
              if (hasCausedBy()) {
                if (!getCausedBy().isInitialized()) {
                  memoizedIsInitialized = 0;
                  return false;
                }
              }
              memoizedIsInitialized = 1;
              return true;
            }

            public void writeTo(com.google.protobuf.CodedOutputStream output)
                throws java.io.IOException {
              getSerializedSize();
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                output.writeBytes(1, getTypeBytes());
              }
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                output.writeBytes(2, getCodeBytes());
              }
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                output.writeBytes(3, getReasonBytes());
              }
              for (int i = 0; i < frames_.size(); i++) {
                output.writeMessage(4, frames_.get(i));
              }
              for (int i = 0; i < customAttributes_.size(); i++) {
                output.writeMessage(5, customAttributes_.get(i));
              }
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                output.writeMessage(6, causedBy_);
              }
              if (((bitField0_ & 0x00000010) == 0x00000010)) {
                output.writeUInt32(7, overflowCount_);
              }
              if (((bitField0_ & 0x00000020) == 0x00000020)) {
                output.writeUInt32(8, importance_);
              }
              getUnknownFields().writeTo(output);
            }

            private int memoizedSerializedSize = -1;

            public int getSerializedSize() {
              int size = memoizedSerializedSize;
              if (size != -1) return size;

              size = 0;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                size += com.google.protobuf.CodedOutputStream.computeBytesSize(1, getTypeBytes());
              }
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                size += com.google.protobuf.CodedOutputStream.computeBytesSize(2, getCodeBytes());
              }
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                size += com.google.protobuf.CodedOutputStream.computeBytesSize(3, getReasonBytes());
              }
              for (int i = 0; i < frames_.size(); i++) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, frames_.get(i));
              }
              for (int i = 0; i < customAttributes_.size(); i++) {
                size +=
                    com.google.protobuf.CodedOutputStream.computeMessageSize(
                        5, customAttributes_.get(i));
              }
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, causedBy_);
              }
              if (((bitField0_ & 0x00000010) == 0x00000010)) {
                size += com.google.protobuf.CodedOutputStream.computeUInt32Size(7, overflowCount_);
              }
              if (((bitField0_ & 0x00000020) == 0x00000020)) {
                size += com.google.protobuf.CodedOutputStream.computeUInt32Size(8, importance_);
              }
              size += getUnknownFields().getSerializedSize();
              memoizedSerializedSize = size;
              return size;
            }

            private static final long serialVersionUID = 0L;

            @java.lang.Override
            protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
              return super.writeReplace();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Exception
                parseFrom(com.google.protobuf.ByteString data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
              return newBuilder().mergeFrom(data).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Exception
                parseFrom(
                    com.google.protobuf.ByteString data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
              return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Exception
                parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
              return newBuilder().mergeFrom(data).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Exception
                parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
              return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Exception
                parseFrom(java.io.InputStream input) throws java.io.IOException {
              return newBuilder().mergeFrom(input).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Exception
                parseFrom(
                    java.io.InputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
              return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Exception
                parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
              Builder builder = newBuilder();
              if (builder.mergeDelimitedFrom(input)) {
                return builder.buildParsed();
              } else {
                return null;
              }
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Exception
                parseDelimitedFrom(
                    java.io.InputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
              Builder builder = newBuilder();
              if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
                return builder.buildParsed();
              } else {
                return null;
              }
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Exception
                parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
              return newBuilder().mergeFrom(input).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Exception
                parseFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
              return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
            }

            public static Builder newBuilder() {
              return Builder.create();
            }

            public Builder newBuilderForType() {
              return newBuilder();
            }

            public static Builder newBuilder(
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.Exception
                    prototype) {
              return newBuilder().mergeFrom(prototype);
            }

            public Builder toBuilder() {
              return newBuilder(this);
            }

            @java.lang.Override
            protected Builder newBuilderForType(
                com.google.protobuf.GeneratedMessage.BuilderParent parent) {
              Builder builder = new Builder(parent);
              return builder;
            }

            public static final class Builder
                extends com.google.protobuf.GeneratedMessage.Builder<Builder>
                implements com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.ExceptionOrBuilder {
              public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return com.google.firebase.crashlytics.device.session.Crashlytics
                    .internal_static_Crashlytics_Session_Event_Application_Execution_Exception_descriptor;
              }

              protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
                  internalGetFieldAccessorTable() {
                return com.google.firebase.crashlytics.device.session.Crashlytics
                    .internal_static_Crashlytics_Session_Event_Application_Execution_Exception_fieldAccessorTable;
              }

              // Construct using
              // com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application.Execution.Exception.newBuilder()
              private Builder() {
                maybeForceBuilderInitialization();
              }

              private Builder(BuilderParent parent) {
                super(parent);
                maybeForceBuilderInitialization();
              }

              private void maybeForceBuilderInitialization() {
                if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
                  getFramesFieldBuilder();
                  getCustomAttributesFieldBuilder();
                  getCausedByFieldBuilder();
                }
              }

              private static Builder create() {
                return new Builder();
              }

              public Builder clear() {
                super.clear();
                type_ = "";
                bitField0_ = (bitField0_ & ~0x00000001);
                code_ = "";
                bitField0_ = (bitField0_ & ~0x00000002);
                reason_ = "";
                bitField0_ = (bitField0_ & ~0x00000004);
                if (framesBuilder_ == null) {
                  frames_ = java.util.Collections.emptyList();
                  bitField0_ = (bitField0_ & ~0x00000008);
                } else {
                  framesBuilder_.clear();
                }
                if (customAttributesBuilder_ == null) {
                  customAttributes_ = java.util.Collections.emptyList();
                  bitField0_ = (bitField0_ & ~0x00000010);
                } else {
                  customAttributesBuilder_.clear();
                }
                if (causedByBuilder_ == null) {
                  causedBy_ =
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Exception.getDefaultInstance();
                } else {
                  causedByBuilder_.clear();
                }
                bitField0_ = (bitField0_ & ~0x00000020);
                overflowCount_ = 0;
                bitField0_ = (bitField0_ & ~0x00000040);
                importance_ = 0;
                bitField0_ = (bitField0_ & ~0x00000080);
                return this;
              }

              public Builder clone() {
                return create().mergeFrom(buildPartial());
              }

              public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Exception.getDescriptor();
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Exception
                  getDefaultInstanceForType() {
                return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Exception.getDefaultInstance();
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Exception
                  build() {
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.Exception
                    result = buildPartial();
                if (!result.isInitialized()) {
                  throw newUninitializedMessageException(result);
                }
                return result;
              }

              private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Exception
                  buildParsed() throws com.google.protobuf.InvalidProtocolBufferException {
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.Exception
                    result = buildPartial();
                if (!result.isInitialized()) {
                  throw newUninitializedMessageException(result).asInvalidProtocolBufferException();
                }
                return result;
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Exception
                  buildPartial() {
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.Exception
                    result =
                        new com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.Exception(this);
                int from_bitField0_ = bitField0_;
                int to_bitField0_ = 0;
                if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
                  to_bitField0_ |= 0x00000001;
                }
                result.type_ = type_;
                if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
                  to_bitField0_ |= 0x00000002;
                }
                result.code_ = code_;
                if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
                  to_bitField0_ |= 0x00000004;
                }
                result.reason_ = reason_;
                if (framesBuilder_ == null) {
                  if (((bitField0_ & 0x00000008) == 0x00000008)) {
                    frames_ = java.util.Collections.unmodifiableList(frames_);
                    bitField0_ = (bitField0_ & ~0x00000008);
                  }
                  result.frames_ = frames_;
                } else {
                  result.frames_ = framesBuilder_.build();
                }
                if (customAttributesBuilder_ == null) {
                  if (((bitField0_ & 0x00000010) == 0x00000010)) {
                    customAttributes_ = java.util.Collections.unmodifiableList(customAttributes_);
                    bitField0_ = (bitField0_ & ~0x00000010);
                  }
                  result.customAttributes_ = customAttributes_;
                } else {
                  result.customAttributes_ = customAttributesBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
                  to_bitField0_ |= 0x00000008;
                }
                if (causedByBuilder_ == null) {
                  result.causedBy_ = causedBy_;
                } else {
                  result.causedBy_ = causedByBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
                  to_bitField0_ |= 0x00000010;
                }
                result.overflowCount_ = overflowCount_;
                if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
                  to_bitField0_ |= 0x00000020;
                }
                result.importance_ = importance_;
                result.bitField0_ = to_bitField0_;
                onBuilt();
                return result;
              }

              public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other
                    instanceof
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Exception) {
                  return mergeFrom(
                      (com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .Application.Execution.Exception)
                          other);
                } else {
                  super.mergeFrom(other);
                  return this;
                }
              }

              public Builder mergeFrom(
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Exception
                      other) {
                if (other
                    == com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Exception.getDefaultInstance()) return this;
                if (other.hasType()) {
                  setType(other.getType());
                }
                if (other.hasCode()) {
                  setCode(other.getCode());
                }
                if (other.hasReason()) {
                  setReason(other.getReason());
                }
                if (framesBuilder_ == null) {
                  if (!other.frames_.isEmpty()) {
                    if (frames_.isEmpty()) {
                      frames_ = other.frames_;
                      bitField0_ = (bitField0_ & ~0x00000008);
                    } else {
                      ensureFramesIsMutable();
                      frames_.addAll(other.frames_);
                    }
                    onChanged();
                  }
                } else {
                  if (!other.frames_.isEmpty()) {
                    if (framesBuilder_.isEmpty()) {
                      framesBuilder_.dispose();
                      framesBuilder_ = null;
                      frames_ = other.frames_;
                      bitField0_ = (bitField0_ & ~0x00000008);
                      framesBuilder_ =
                          com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders
                              ? getFramesFieldBuilder()
                              : null;
                    } else {
                      framesBuilder_.addAllMessages(other.frames_);
                    }
                  }
                }
                if (customAttributesBuilder_ == null) {
                  if (!other.customAttributes_.isEmpty()) {
                    if (customAttributes_.isEmpty()) {
                      customAttributes_ = other.customAttributes_;
                      bitField0_ = (bitField0_ & ~0x00000010);
                    } else {
                      ensureCustomAttributesIsMutable();
                      customAttributes_.addAll(other.customAttributes_);
                    }
                    onChanged();
                  }
                } else {
                  if (!other.customAttributes_.isEmpty()) {
                    if (customAttributesBuilder_.isEmpty()) {
                      customAttributesBuilder_.dispose();
                      customAttributesBuilder_ = null;
                      customAttributes_ = other.customAttributes_;
                      bitField0_ = (bitField0_ & ~0x00000010);
                      customAttributesBuilder_ =
                          com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders
                              ? getCustomAttributesFieldBuilder()
                              : null;
                    } else {
                      customAttributesBuilder_.addAllMessages(other.customAttributes_);
                    }
                  }
                }
                if (other.hasCausedBy()) {
                  mergeCausedBy(other.getCausedBy());
                }
                if (other.hasOverflowCount()) {
                  setOverflowCount(other.getOverflowCount());
                }
                if (other.hasImportance()) {
                  setImportance(other.getImportance());
                }
                this.mergeUnknownFields(other.getUnknownFields());
                return this;
              }

              public final boolean isInitialized() {
                for (int i = 0; i < getFramesCount(); i++) {
                  if (!getFrames(i).isInitialized()) {

                    return false;
                  }
                }
                for (int i = 0; i < getCustomAttributesCount(); i++) {
                  if (!getCustomAttributes(i).isInitialized()) {

                    return false;
                  }
                }
                if (hasCausedBy()) {
                  if (!getCausedBy().isInitialized()) {

                    return false;
                  }
                }
                return true;
              }

              public Builder mergeFrom(
                  com.google.protobuf.CodedInputStream input,
                  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                  throws java.io.IOException {
                com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                    com.google.protobuf.UnknownFieldSet.newBuilder(this.getUnknownFields());
                while (true) {
                  int tag = input.readTag();
                  switch (tag) {
                    case 0:
                      this.setUnknownFields(unknownFields.build());
                      onChanged();
                      return this;
                    default:
                      {
                        if (!parseUnknownField(
                            input, unknownFields,
                            extensionRegistry, tag)) {
                          this.setUnknownFields(unknownFields.build());
                          onChanged();
                          return this;
                        }
                        break;
                      }
                    case 10:
                      {
                        bitField0_ |= 0x00000001;
                        type_ = input.readBytes();
                        break;
                      }
                    case 18:
                      {
                        bitField0_ |= 0x00000002;
                        code_ = input.readBytes();
                        break;
                      }
                    case 26:
                      {
                        bitField0_ |= 0x00000004;
                        reason_ = input.readBytes();
                        break;
                      }
                    case 34:
                      {
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                                .Application.Execution.Thread.Frame.Builder
                            subBuilder =
                                com.google.firebase.crashlytics.device.session.Crashlytics.Session
                                    .Event.Application.Execution.Thread.Frame.newBuilder();
                        input.readMessage(subBuilder, extensionRegistry);
                        addFrames(subBuilder.buildPartial());
                        break;
                      }
                    case 42:
                      {
                        com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
                                .Builder
                            subBuilder =
                                com.google.firebase.crashlytics.device.session.Crashlytics
                                    .CustomAttribute.newBuilder();
                        input.readMessage(subBuilder, extensionRegistry);
                        addCustomAttributes(subBuilder.buildPartial());
                        break;
                      }
                    case 50:
                      {
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                                .Application.Execution.Exception.Builder
                            subBuilder =
                                com.google.firebase.crashlytics.device.session.Crashlytics.Session
                                    .Event.Application.Execution.Exception.newBuilder();
                        if (hasCausedBy()) {
                          subBuilder.mergeFrom(getCausedBy());
                        }
                        input.readMessage(subBuilder, extensionRegistry);
                        setCausedBy(subBuilder.buildPartial());
                        break;
                      }
                    case 56:
                      {
                        bitField0_ |= 0x00000040;
                        overflowCount_ = input.readUInt32();
                        break;
                      }
                    case 64:
                      {
                        bitField0_ |= 0x00000080;
                        importance_ = input.readUInt32();
                        break;
                      }
                  }
                }
              }

              private int bitField0_;

              // optional string type = 1;
              private java.lang.Object type_ = "";

              public boolean hasType() {
                return ((bitField0_ & 0x00000001) == 0x00000001);
              }

              public String getType() {
                java.lang.Object ref = type_;
                if (!(ref instanceof String)) {
                  String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
                  type_ = s;
                  return s;
                } else {
                  return (String) ref;
                }
              }

              public Builder setType(String value) {
                if (value == null) {
                  throw new NullPointerException();
                }
                bitField0_ |= 0x00000001;
                type_ = value;
                onChanged();
                return this;
              }

              public Builder clearType() {
                bitField0_ = (bitField0_ & ~0x00000001);
                type_ = getDefaultInstance().getType();
                onChanged();
                return this;
              }

              void setType(com.google.protobuf.ByteString value) {
                bitField0_ |= 0x00000001;
                type_ = value;
                onChanged();
              }

              // optional string code = 2;
              private java.lang.Object code_ = "";

              public boolean hasCode() {
                return ((bitField0_ & 0x00000002) == 0x00000002);
              }

              public String getCode() {
                java.lang.Object ref = code_;
                if (!(ref instanceof String)) {
                  String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
                  code_ = s;
                  return s;
                } else {
                  return (String) ref;
                }
              }

              public Builder setCode(String value) {
                if (value == null) {
                  throw new NullPointerException();
                }
                bitField0_ |= 0x00000002;
                code_ = value;
                onChanged();
                return this;
              }

              public Builder clearCode() {
                bitField0_ = (bitField0_ & ~0x00000002);
                code_ = getDefaultInstance().getCode();
                onChanged();
                return this;
              }

              void setCode(com.google.protobuf.ByteString value) {
                bitField0_ |= 0x00000002;
                code_ = value;
                onChanged();
              }

              // optional string reason = 3;
              private java.lang.Object reason_ = "";

              public boolean hasReason() {
                return ((bitField0_ & 0x00000004) == 0x00000004);
              }

              public String getReason() {
                java.lang.Object ref = reason_;
                if (!(ref instanceof String)) {
                  String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
                  reason_ = s;
                  return s;
                } else {
                  return (String) ref;
                }
              }

              public Builder setReason(String value) {
                if (value == null) {
                  throw new NullPointerException();
                }
                bitField0_ |= 0x00000004;
                reason_ = value;
                onChanged();
                return this;
              }

              public Builder clearReason() {
                bitField0_ = (bitField0_ & ~0x00000004);
                reason_ = getDefaultInstance().getReason();
                onChanged();
                return this;
              }

              void setReason(com.google.protobuf.ByteString value) {
                bitField0_ |= 0x00000004;
                reason_ = value;
                onChanged();
              }

              // repeated .Crashlytics.Session.Event.Application.Execution.Thread.Frame frames = 4;
              private java.util.List<
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Frame>
                  frames_ = java.util.Collections.emptyList();

              private void ensureFramesIsMutable() {
                if (!((bitField0_ & 0x00000008) == 0x00000008)) {
                  frames_ =
                      new java.util.ArrayList<
                          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .Application.Execution.Thread.Frame>(frames_);
                  bitField0_ |= 0x00000008;
                }
              }

              private com.google.protobuf.RepeatedFieldBuilder<
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Frame,
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Frame.Builder,
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.FrameOrBuilder>
                  framesBuilder_;

              public java.util.List<
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Frame>
                  getFramesList() {
                if (framesBuilder_ == null) {
                  return java.util.Collections.unmodifiableList(frames_);
                } else {
                  return framesBuilder_.getMessageList();
                }
              }

              public int getFramesCount() {
                if (framesBuilder_ == null) {
                  return frames_.size();
                } else {
                  return framesBuilder_.getCount();
                }
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Frame
                  getFrames(int index) {
                if (framesBuilder_ == null) {
                  return frames_.get(index);
                } else {
                  return framesBuilder_.getMessage(index);
                }
              }

              public Builder setFrames(
                  int index,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Frame
                      value) {
                if (framesBuilder_ == null) {
                  if (value == null) {
                    throw new NullPointerException();
                  }
                  ensureFramesIsMutable();
                  frames_.set(index, value);
                  onChanged();
                } else {
                  framesBuilder_.setMessage(index, value);
                }
                return this;
              }

              public Builder setFrames(
                  int index,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Frame.Builder
                      builderForValue) {
                if (framesBuilder_ == null) {
                  ensureFramesIsMutable();
                  frames_.set(index, builderForValue.build());
                  onChanged();
                } else {
                  framesBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
              }

              public Builder addFrames(
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Frame
                      value) {
                if (framesBuilder_ == null) {
                  if (value == null) {
                    throw new NullPointerException();
                  }
                  ensureFramesIsMutable();
                  frames_.add(value);
                  onChanged();
                } else {
                  framesBuilder_.addMessage(value);
                }
                return this;
              }

              public Builder addFrames(
                  int index,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Frame
                      value) {
                if (framesBuilder_ == null) {
                  if (value == null) {
                    throw new NullPointerException();
                  }
                  ensureFramesIsMutable();
                  frames_.add(index, value);
                  onChanged();
                } else {
                  framesBuilder_.addMessage(index, value);
                }
                return this;
              }

              public Builder addFrames(
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Frame.Builder
                      builderForValue) {
                if (framesBuilder_ == null) {
                  ensureFramesIsMutable();
                  frames_.add(builderForValue.build());
                  onChanged();
                } else {
                  framesBuilder_.addMessage(builderForValue.build());
                }
                return this;
              }

              public Builder addFrames(
                  int index,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Frame.Builder
                      builderForValue) {
                if (framesBuilder_ == null) {
                  ensureFramesIsMutable();
                  frames_.add(index, builderForValue.build());
                  onChanged();
                } else {
                  framesBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
              }

              public Builder addAllFrames(
                  java.lang.Iterable<
                          ? extends
                              com.google.firebase.crashlytics.device.session.Crashlytics.Session
                                  .Event.Application.Execution.Thread.Frame>
                      values) {
                if (framesBuilder_ == null) {
                  ensureFramesIsMutable();
                  super.addAll(values, frames_);
                  onChanged();
                } else {
                  framesBuilder_.addAllMessages(values);
                }
                return this;
              }

              public Builder clearFrames() {
                if (framesBuilder_ == null) {
                  frames_ = java.util.Collections.emptyList();
                  bitField0_ = (bitField0_ & ~0x00000008);
                  onChanged();
                } else {
                  framesBuilder_.clear();
                }
                return this;
              }

              public Builder removeFrames(int index) {
                if (framesBuilder_ == null) {
                  ensureFramesIsMutable();
                  frames_.remove(index);
                  onChanged();
                } else {
                  framesBuilder_.remove(index);
                }
                return this;
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Frame.Builder
                  getFramesBuilder(int index) {
                return getFramesFieldBuilder().getBuilder(index);
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.FrameOrBuilder
                  getFramesOrBuilder(int index) {
                if (framesBuilder_ == null) {
                  return frames_.get(index);
                } else {
                  return framesBuilder_.getMessageOrBuilder(index);
                }
              }

              public java.util.List<
                      ? extends
                          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .Application.Execution.Thread.FrameOrBuilder>
                  getFramesOrBuilderList() {
                if (framesBuilder_ != null) {
                  return framesBuilder_.getMessageOrBuilderList();
                } else {
                  return java.util.Collections.unmodifiableList(frames_);
                }
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Frame.Builder
                  addFramesBuilder() {
                return getFramesFieldBuilder()
                    .addBuilder(
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.Thread.Frame.getDefaultInstance());
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread.Frame.Builder
                  addFramesBuilder(int index) {
                return getFramesFieldBuilder()
                    .addBuilder(
                        index,
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.Thread.Frame.getDefaultInstance());
              }

              public java.util.List<
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Frame.Builder>
                  getFramesBuilderList() {
                return getFramesFieldBuilder().getBuilderList();
              }

              private com.google.protobuf.RepeatedFieldBuilder<
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Frame,
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.Frame.Builder,
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.FrameOrBuilder>
                  getFramesFieldBuilder() {
                if (framesBuilder_ == null) {
                  framesBuilder_ =
                      new com.google.protobuf.RepeatedFieldBuilder<
                          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .Application.Execution.Thread.Frame,
                          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .Application.Execution.Thread.Frame.Builder,
                          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .Application.Execution.Thread.FrameOrBuilder>(
                          frames_,
                          ((bitField0_ & 0x00000008) == 0x00000008),
                          getParentForChildren(),
                          isClean());
                  frames_ = null;
                }
                return framesBuilder_;
              }

              // repeated .Crashlytics.CustomAttribute custom_attributes = 5;
              private java.util.List<
                      com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute>
                  customAttributes_ = java.util.Collections.emptyList();

              private void ensureCustomAttributesIsMutable() {
                if (!((bitField0_ & 0x00000010) == 0x00000010)) {
                  customAttributes_ =
                      new java.util.ArrayList<
                          com.google.firebase.crashlytics.device.session.Crashlytics
                              .CustomAttribute>(customAttributes_);
                  bitField0_ |= 0x00000010;
                }
              }

              private com.google.protobuf.RepeatedFieldBuilder<
                      com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute,
                      com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
                          .Builder,
                      com.google.firebase.crashlytics.device.session.Crashlytics
                          .CustomAttributeOrBuilder>
                  customAttributesBuilder_;

              public java.util.List<
                      com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute>
                  getCustomAttributesList() {
                if (customAttributesBuilder_ == null) {
                  return java.util.Collections.unmodifiableList(customAttributes_);
                } else {
                  return customAttributesBuilder_.getMessageList();
                }
              }

              public int getCustomAttributesCount() {
                if (customAttributesBuilder_ == null) {
                  return customAttributes_.size();
                } else {
                  return customAttributesBuilder_.getCount();
                }
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
                  getCustomAttributes(int index) {
                if (customAttributesBuilder_ == null) {
                  return customAttributes_.get(index);
                } else {
                  return customAttributesBuilder_.getMessage(index);
                }
              }

              public Builder setCustomAttributes(
                  int index,
                  com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
                      value) {
                if (customAttributesBuilder_ == null) {
                  if (value == null) {
                    throw new NullPointerException();
                  }
                  ensureCustomAttributesIsMutable();
                  customAttributes_.set(index, value);
                  onChanged();
                } else {
                  customAttributesBuilder_.setMessage(index, value);
                }
                return this;
              }

              public Builder setCustomAttributes(
                  int index,
                  com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute.Builder
                      builderForValue) {
                if (customAttributesBuilder_ == null) {
                  ensureCustomAttributesIsMutable();
                  customAttributes_.set(index, builderForValue.build());
                  onChanged();
                } else {
                  customAttributesBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
              }

              public Builder addCustomAttributes(
                  com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
                      value) {
                if (customAttributesBuilder_ == null) {
                  if (value == null) {
                    throw new NullPointerException();
                  }
                  ensureCustomAttributesIsMutable();
                  customAttributes_.add(value);
                  onChanged();
                } else {
                  customAttributesBuilder_.addMessage(value);
                }
                return this;
              }

              public Builder addCustomAttributes(
                  int index,
                  com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
                      value) {
                if (customAttributesBuilder_ == null) {
                  if (value == null) {
                    throw new NullPointerException();
                  }
                  ensureCustomAttributesIsMutable();
                  customAttributes_.add(index, value);
                  onChanged();
                } else {
                  customAttributesBuilder_.addMessage(index, value);
                }
                return this;
              }

              public Builder addCustomAttributes(
                  com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute.Builder
                      builderForValue) {
                if (customAttributesBuilder_ == null) {
                  ensureCustomAttributesIsMutable();
                  customAttributes_.add(builderForValue.build());
                  onChanged();
                } else {
                  customAttributesBuilder_.addMessage(builderForValue.build());
                }
                return this;
              }

              public Builder addCustomAttributes(
                  int index,
                  com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute.Builder
                      builderForValue) {
                if (customAttributesBuilder_ == null) {
                  ensureCustomAttributesIsMutable();
                  customAttributes_.add(index, builderForValue.build());
                  onChanged();
                } else {
                  customAttributesBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
              }

              public Builder addAllCustomAttributes(
                  java.lang.Iterable<
                          ? extends
                              com.google.firebase.crashlytics.device.session.Crashlytics
                                  .CustomAttribute>
                      values) {
                if (customAttributesBuilder_ == null) {
                  ensureCustomAttributesIsMutable();
                  super.addAll(values, customAttributes_);
                  onChanged();
                } else {
                  customAttributesBuilder_.addAllMessages(values);
                }
                return this;
              }

              public Builder clearCustomAttributes() {
                if (customAttributesBuilder_ == null) {
                  customAttributes_ = java.util.Collections.emptyList();
                  bitField0_ = (bitField0_ & ~0x00000010);
                  onChanged();
                } else {
                  customAttributesBuilder_.clear();
                }
                return this;
              }

              public Builder removeCustomAttributes(int index) {
                if (customAttributesBuilder_ == null) {
                  ensureCustomAttributesIsMutable();
                  customAttributes_.remove(index);
                  onChanged();
                } else {
                  customAttributesBuilder_.remove(index);
                }
                return this;
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
                      .Builder
                  getCustomAttributesBuilder(int index) {
                return getCustomAttributesFieldBuilder().getBuilder(index);
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics
                      .CustomAttributeOrBuilder
                  getCustomAttributesOrBuilder(int index) {
                if (customAttributesBuilder_ == null) {
                  return customAttributes_.get(index);
                } else {
                  return customAttributesBuilder_.getMessageOrBuilder(index);
                }
              }

              public java.util.List<
                      ? extends
                          com.google.firebase.crashlytics.device.session.Crashlytics
                              .CustomAttributeOrBuilder>
                  getCustomAttributesOrBuilderList() {
                if (customAttributesBuilder_ != null) {
                  return customAttributesBuilder_.getMessageOrBuilderList();
                } else {
                  return java.util.Collections.unmodifiableList(customAttributes_);
                }
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
                      .Builder
                  addCustomAttributesBuilder() {
                return getCustomAttributesFieldBuilder()
                    .addBuilder(
                        com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
                            .getDefaultInstance());
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
                      .Builder
                  addCustomAttributesBuilder(int index) {
                return getCustomAttributesFieldBuilder()
                    .addBuilder(
                        index,
                        com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
                            .getDefaultInstance());
              }

              public java.util.List<
                      com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
                          .Builder>
                  getCustomAttributesBuilderList() {
                return getCustomAttributesFieldBuilder().getBuilderList();
              }

              private com.google.protobuf.RepeatedFieldBuilder<
                      com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute,
                      com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
                          .Builder,
                      com.google.firebase.crashlytics.device.session.Crashlytics
                          .CustomAttributeOrBuilder>
                  getCustomAttributesFieldBuilder() {
                if (customAttributesBuilder_ == null) {
                  customAttributesBuilder_ =
                      new com.google.protobuf.RepeatedFieldBuilder<
                          com.google.firebase.crashlytics.device.session.Crashlytics
                              .CustomAttribute,
                          com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
                              .Builder,
                          com.google.firebase.crashlytics.device.session.Crashlytics
                              .CustomAttributeOrBuilder>(
                          customAttributes_,
                          ((bitField0_ & 0x00000010) == 0x00000010),
                          getParentForChildren(),
                          isClean());
                  customAttributes_ = null;
                }
                return customAttributesBuilder_;
              }

              // optional .Crashlytics.Session.Event.Application.Execution.Exception caused_by = 6;
              private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Exception
                  causedBy_ =
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Exception.getDefaultInstance();
              private com.google.protobuf.SingleFieldBuilder<
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Exception,
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Exception.Builder,
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.ExceptionOrBuilder>
                  causedByBuilder_;

              public boolean hasCausedBy() {
                return ((bitField0_ & 0x00000020) == 0x00000020);
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Exception
                  getCausedBy() {
                if (causedByBuilder_ == null) {
                  return causedBy_;
                } else {
                  return causedByBuilder_.getMessage();
                }
              }

              public Builder setCausedBy(
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Exception
                      value) {
                if (causedByBuilder_ == null) {
                  if (value == null) {
                    throw new NullPointerException();
                  }
                  causedBy_ = value;
                  onChanged();
                } else {
                  causedByBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000020;
                return this;
              }

              public Builder setCausedBy(
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Exception.Builder
                      builderForValue) {
                if (causedByBuilder_ == null) {
                  causedBy_ = builderForValue.build();
                  onChanged();
                } else {
                  causedByBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000020;
                return this;
              }

              public Builder mergeCausedBy(
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Exception
                      value) {
                if (causedByBuilder_ == null) {
                  if (((bitField0_ & 0x00000020) == 0x00000020)
                      && causedBy_
                          != com.google.firebase.crashlytics.device.session.Crashlytics.Session
                              .Event.Application.Execution.Exception.getDefaultInstance()) {
                    causedBy_ =
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.Exception.newBuilder(causedBy_)
                            .mergeFrom(value)
                            .buildPartial();
                  } else {
                    causedBy_ = value;
                  }
                  onChanged();
                } else {
                  causedByBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000020;
                return this;
              }

              public Builder clearCausedBy() {
                if (causedByBuilder_ == null) {
                  causedBy_ =
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Exception.getDefaultInstance();
                  onChanged();
                } else {
                  causedByBuilder_.clear();
                }
                bitField0_ = (bitField0_ & ~0x00000020);
                return this;
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Exception.Builder
                  getCausedByBuilder() {
                bitField0_ |= 0x00000020;
                onChanged();
                return getCausedByFieldBuilder().getBuilder();
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.ExceptionOrBuilder
                  getCausedByOrBuilder() {
                if (causedByBuilder_ != null) {
                  return causedByBuilder_.getMessageOrBuilder();
                } else {
                  return causedBy_;
                }
              }

              private com.google.protobuf.SingleFieldBuilder<
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Exception,
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Exception.Builder,
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.ExceptionOrBuilder>
                  getCausedByFieldBuilder() {
                if (causedByBuilder_ == null) {
                  causedByBuilder_ =
                      new com.google.protobuf.SingleFieldBuilder<
                          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .Application.Execution.Exception,
                          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .Application.Execution.Exception.Builder,
                          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .Application.Execution.ExceptionOrBuilder>(
                          causedBy_, getParentForChildren(), isClean());
                  causedBy_ = null;
                }
                return causedByBuilder_;
              }

              // optional uint32 overflow_count = 7;
              private int overflowCount_;

              public boolean hasOverflowCount() {
                return ((bitField0_ & 0x00000040) == 0x00000040);
              }

              public int getOverflowCount() {
                return overflowCount_;
              }

              public Builder setOverflowCount(int value) {
                bitField0_ |= 0x00000040;
                overflowCount_ = value;
                onChanged();
                return this;
              }

              public Builder clearOverflowCount() {
                bitField0_ = (bitField0_ & ~0x00000040);
                overflowCount_ = 0;
                onChanged();
                return this;
              }

              // optional uint32 importance = 8;
              private int importance_;

              public boolean hasImportance() {
                return ((bitField0_ & 0x00000080) == 0x00000080);
              }

              public int getImportance() {
                return importance_;
              }

              public Builder setImportance(int value) {
                bitField0_ |= 0x00000080;
                importance_ = value;
                onChanged();
                return this;
              }

              public Builder clearImportance() {
                bitField0_ = (bitField0_ & ~0x00000080);
                importance_ = 0;
                onChanged();
                return this;
              }

              // @@protoc_insertion_point(builder_scope:Crashlytics.Session.Event.Application.Execution.Exception)
            }

            static {
              defaultInstance = new Exception(true);
              defaultInstance.initFields();
            }

            // @@protoc_insertion_point(class_scope:Crashlytics.Session.Event.Application.Execution.Exception)
          }

          public interface SignalOrBuilder extends com.google.protobuf.MessageOrBuilder {

            // required string name = 1;
            boolean hasName();

            String getName();

            // required string code = 2;
            boolean hasCode();

            String getCode();

            // required uint64 address = 3;
            boolean hasAddress();

            long getAddress();
          }

          public static final class Signal extends com.google.protobuf.GeneratedMessage
              implements SignalOrBuilder {
            // Use Signal.newBuilder() to construct.
            private Signal(Builder builder) {
              super(builder);
            }

            private Signal(boolean noInit) {}

            private static final Signal defaultInstance;

            public static Signal getDefaultInstance() {
              return defaultInstance;
            }

            public Signal getDefaultInstanceForType() {
              return defaultInstance;
            }

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
              return com.google.firebase.crashlytics.device.session.Crashlytics
                  .internal_static_Crashlytics_Session_Event_Application_Execution_Signal_descriptor;
            }

            protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
                internalGetFieldAccessorTable() {
              return com.google.firebase.crashlytics.device.session.Crashlytics
                  .internal_static_Crashlytics_Session_Event_Application_Execution_Signal_fieldAccessorTable;
            }

            private int bitField0_;
            // required string name = 1;
            public static final int NAME_FIELD_NUMBER = 1;
            private java.lang.Object name_;

            public boolean hasName() {
              return ((bitField0_ & 0x00000001) == 0x00000001);
            }

            public String getName() {
              java.lang.Object ref = name_;
              if (ref instanceof String) {
                return (String) ref;
              } else {
                com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                String s = bs.toStringUtf8();
                if (com.google.protobuf.Internal.isValidUtf8(bs)) {
                  name_ = s;
                }
                return s;
              }
            }

            private com.google.protobuf.ByteString getNameBytes() {
              java.lang.Object ref = name_;
              if (ref instanceof String) {
                com.google.protobuf.ByteString b =
                    com.google.protobuf.ByteString.copyFromUtf8((String) ref);
                name_ = b;
                return b;
              } else {
                return (com.google.protobuf.ByteString) ref;
              }
            }

            // required string code = 2;
            public static final int CODE_FIELD_NUMBER = 2;
            private java.lang.Object code_;

            public boolean hasCode() {
              return ((bitField0_ & 0x00000002) == 0x00000002);
            }

            public String getCode() {
              java.lang.Object ref = code_;
              if (ref instanceof String) {
                return (String) ref;
              } else {
                com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                String s = bs.toStringUtf8();
                if (com.google.protobuf.Internal.isValidUtf8(bs)) {
                  code_ = s;
                }
                return s;
              }
            }

            private com.google.protobuf.ByteString getCodeBytes() {
              java.lang.Object ref = code_;
              if (ref instanceof String) {
                com.google.protobuf.ByteString b =
                    com.google.protobuf.ByteString.copyFromUtf8((String) ref);
                code_ = b;
                return b;
              } else {
                return (com.google.protobuf.ByteString) ref;
              }
            }

            // required uint64 address = 3;
            public static final int ADDRESS_FIELD_NUMBER = 3;
            private long address_;

            public boolean hasAddress() {
              return ((bitField0_ & 0x00000004) == 0x00000004);
            }

            public long getAddress() {
              return address_;
            }

            private void initFields() {
              name_ = "";
              code_ = "";
              address_ = 0L;
            }

            private byte memoizedIsInitialized = -1;

            public final boolean isInitialized() {
              byte isInitialized = memoizedIsInitialized;
              if (isInitialized != -1) return isInitialized == 1;

              if (!hasName()) {
                memoizedIsInitialized = 0;
                return false;
              }
              if (!hasCode()) {
                memoizedIsInitialized = 0;
                return false;
              }
              if (!hasAddress()) {
                memoizedIsInitialized = 0;
                return false;
              }
              memoizedIsInitialized = 1;
              return true;
            }

            public void writeTo(com.google.protobuf.CodedOutputStream output)
                throws java.io.IOException {
              getSerializedSize();
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                output.writeBytes(1, getNameBytes());
              }
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                output.writeBytes(2, getCodeBytes());
              }
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                output.writeUInt64(3, address_);
              }
              getUnknownFields().writeTo(output);
            }

            private int memoizedSerializedSize = -1;

            public int getSerializedSize() {
              int size = memoizedSerializedSize;
              if (size != -1) return size;

              size = 0;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                size += com.google.protobuf.CodedOutputStream.computeBytesSize(1, getNameBytes());
              }
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                size += com.google.protobuf.CodedOutputStream.computeBytesSize(2, getCodeBytes());
              }
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                size += com.google.protobuf.CodedOutputStream.computeUInt64Size(3, address_);
              }
              size += getUnknownFields().getSerializedSize();
              memoizedSerializedSize = size;
              return size;
            }

            private static final long serialVersionUID = 0L;

            @java.lang.Override
            protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
              return super.writeReplace();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Signal
                parseFrom(com.google.protobuf.ByteString data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
              return newBuilder().mergeFrom(data).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Signal
                parseFrom(
                    com.google.protobuf.ByteString data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
              return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Signal
                parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
              return newBuilder().mergeFrom(data).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Signal
                parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
              return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Signal
                parseFrom(java.io.InputStream input) throws java.io.IOException {
              return newBuilder().mergeFrom(input).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Signal
                parseFrom(
                    java.io.InputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
              return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Signal
                parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
              Builder builder = newBuilder();
              if (builder.mergeDelimitedFrom(input)) {
                return builder.buildParsed();
              } else {
                return null;
              }
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Signal
                parseDelimitedFrom(
                    java.io.InputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
              Builder builder = newBuilder();
              if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
                return builder.buildParsed();
              } else {
                return null;
              }
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Signal
                parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
              return newBuilder().mergeFrom(input).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Signal
                parseFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
              return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
            }

            public static Builder newBuilder() {
              return Builder.create();
            }

            public Builder newBuilderForType() {
              return newBuilder();
            }

            public static Builder newBuilder(
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.Signal
                    prototype) {
              return newBuilder().mergeFrom(prototype);
            }

            public Builder toBuilder() {
              return newBuilder(this);
            }

            @java.lang.Override
            protected Builder newBuilderForType(
                com.google.protobuf.GeneratedMessage.BuilderParent parent) {
              Builder builder = new Builder(parent);
              return builder;
            }

            public static final class Builder
                extends com.google.protobuf.GeneratedMessage.Builder<Builder>
                implements com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.SignalOrBuilder {
              public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return com.google.firebase.crashlytics.device.session.Crashlytics
                    .internal_static_Crashlytics_Session_Event_Application_Execution_Signal_descriptor;
              }

              protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
                  internalGetFieldAccessorTable() {
                return com.google.firebase.crashlytics.device.session.Crashlytics
                    .internal_static_Crashlytics_Session_Event_Application_Execution_Signal_fieldAccessorTable;
              }

              // Construct using
              // com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application.Execution.Signal.newBuilder()
              private Builder() {
                maybeForceBuilderInitialization();
              }

              private Builder(BuilderParent parent) {
                super(parent);
                maybeForceBuilderInitialization();
              }

              private void maybeForceBuilderInitialization() {
                if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {}
              }

              private static Builder create() {
                return new Builder();
              }

              public Builder clear() {
                super.clear();
                name_ = "";
                bitField0_ = (bitField0_ & ~0x00000001);
                code_ = "";
                bitField0_ = (bitField0_ & ~0x00000002);
                address_ = 0L;
                bitField0_ = (bitField0_ & ~0x00000004);
                return this;
              }

              public Builder clone() {
                return create().mergeFrom(buildPartial());
              }

              public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Signal.getDescriptor();
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Signal
                  getDefaultInstanceForType() {
                return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Signal.getDefaultInstance();
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Signal
                  build() {
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.Signal
                    result = buildPartial();
                if (!result.isInitialized()) {
                  throw newUninitializedMessageException(result);
                }
                return result;
              }

              private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Signal
                  buildParsed() throws com.google.protobuf.InvalidProtocolBufferException {
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.Signal
                    result = buildPartial();
                if (!result.isInitialized()) {
                  throw newUninitializedMessageException(result).asInvalidProtocolBufferException();
                }
                return result;
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Signal
                  buildPartial() {
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.Signal
                    result =
                        new com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.Signal(this);
                int from_bitField0_ = bitField0_;
                int to_bitField0_ = 0;
                if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
                  to_bitField0_ |= 0x00000001;
                }
                result.name_ = name_;
                if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
                  to_bitField0_ |= 0x00000002;
                }
                result.code_ = code_;
                if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
                  to_bitField0_ |= 0x00000004;
                }
                result.address_ = address_;
                result.bitField0_ = to_bitField0_;
                onBuilt();
                return result;
              }

              public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other
                    instanceof
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Signal) {
                  return mergeFrom(
                      (com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .Application.Execution.Signal)
                          other);
                } else {
                  super.mergeFrom(other);
                  return this;
                }
              }

              public Builder mergeFrom(
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Signal
                      other) {
                if (other
                    == com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Signal.getDefaultInstance()) return this;
                if (other.hasName()) {
                  setName(other.getName());
                }
                if (other.hasCode()) {
                  setCode(other.getCode());
                }
                if (other.hasAddress()) {
                  setAddress(other.getAddress());
                }
                this.mergeUnknownFields(other.getUnknownFields());
                return this;
              }

              public final boolean isInitialized() {
                if (!hasName()) {

                  return false;
                }
                if (!hasCode()) {

                  return false;
                }
                if (!hasAddress()) {

                  return false;
                }
                return true;
              }

              public Builder mergeFrom(
                  com.google.protobuf.CodedInputStream input,
                  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                  throws java.io.IOException {
                com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                    com.google.protobuf.UnknownFieldSet.newBuilder(this.getUnknownFields());
                while (true) {
                  int tag = input.readTag();
                  switch (tag) {
                    case 0:
                      this.setUnknownFields(unknownFields.build());
                      onChanged();
                      return this;
                    default:
                      {
                        if (!parseUnknownField(
                            input, unknownFields,
                            extensionRegistry, tag)) {
                          this.setUnknownFields(unknownFields.build());
                          onChanged();
                          return this;
                        }
                        break;
                      }
                    case 10:
                      {
                        bitField0_ |= 0x00000001;
                        name_ = input.readBytes();
                        break;
                      }
                    case 18:
                      {
                        bitField0_ |= 0x00000002;
                        code_ = input.readBytes();
                        break;
                      }
                    case 24:
                      {
                        bitField0_ |= 0x00000004;
                        address_ = input.readUInt64();
                        break;
                      }
                  }
                }
              }

              private int bitField0_;

              // required string name = 1;
              private java.lang.Object name_ = "";

              public boolean hasName() {
                return ((bitField0_ & 0x00000001) == 0x00000001);
              }

              public String getName() {
                java.lang.Object ref = name_;
                if (!(ref instanceof String)) {
                  String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
                  name_ = s;
                  return s;
                } else {
                  return (String) ref;
                }
              }

              public Builder setName(String value) {
                if (value == null) {
                  throw new NullPointerException();
                }
                bitField0_ |= 0x00000001;
                name_ = value;
                onChanged();
                return this;
              }

              public Builder clearName() {
                bitField0_ = (bitField0_ & ~0x00000001);
                name_ = getDefaultInstance().getName();
                onChanged();
                return this;
              }

              void setName(com.google.protobuf.ByteString value) {
                bitField0_ |= 0x00000001;
                name_ = value;
                onChanged();
              }

              // required string code = 2;
              private java.lang.Object code_ = "";

              public boolean hasCode() {
                return ((bitField0_ & 0x00000002) == 0x00000002);
              }

              public String getCode() {
                java.lang.Object ref = code_;
                if (!(ref instanceof String)) {
                  String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
                  code_ = s;
                  return s;
                } else {
                  return (String) ref;
                }
              }

              public Builder setCode(String value) {
                if (value == null) {
                  throw new NullPointerException();
                }
                bitField0_ |= 0x00000002;
                code_ = value;
                onChanged();
                return this;
              }

              public Builder clearCode() {
                bitField0_ = (bitField0_ & ~0x00000002);
                code_ = getDefaultInstance().getCode();
                onChanged();
                return this;
              }

              void setCode(com.google.protobuf.ByteString value) {
                bitField0_ |= 0x00000002;
                code_ = value;
                onChanged();
              }

              // required uint64 address = 3;
              private long address_;

              public boolean hasAddress() {
                return ((bitField0_ & 0x00000004) == 0x00000004);
              }

              public long getAddress() {
                return address_;
              }

              public Builder setAddress(long value) {
                bitField0_ |= 0x00000004;
                address_ = value;
                onChanged();
                return this;
              }

              public Builder clearAddress() {
                bitField0_ = (bitField0_ & ~0x00000004);
                address_ = 0L;
                onChanged();
                return this;
              }

              // @@protoc_insertion_point(builder_scope:Crashlytics.Session.Event.Application.Execution.Signal)
            }

            static {
              defaultInstance = new Signal(true);
              defaultInstance.initFields();
            }

            // @@protoc_insertion_point(class_scope:Crashlytics.Session.Event.Application.Execution.Signal)
          }

          public interface BinaryImageOrBuilder extends com.google.protobuf.MessageOrBuilder {

            // required uint64 base_address = 1;
            boolean hasBaseAddress();

            long getBaseAddress();

            // required uint64 size = 2;
            boolean hasSize();

            long getSize();

            // required string name = 3;
            boolean hasName();

            String getName();

            // optional bytes uuid = 4;
            boolean hasUuid();

            com.google.protobuf.ByteString getUuid();

            // optional .Crashlytics.Architecture arch = 5;
            boolean hasArch();

            com.google.firebase.crashlytics.device.session.Crashlytics.Architecture getArch();

            // optional string cls_id = 6;
            boolean hasClsId();

            String getClsId();
          }

          public static final class BinaryImage extends com.google.protobuf.GeneratedMessage
              implements BinaryImageOrBuilder {
            // Use BinaryImage.newBuilder() to construct.
            private BinaryImage(Builder builder) {
              super(builder);
            }

            private BinaryImage(boolean noInit) {}

            private static final BinaryImage defaultInstance;

            public static BinaryImage getDefaultInstance() {
              return defaultInstance;
            }

            public BinaryImage getDefaultInstanceForType() {
              return defaultInstance;
            }

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
              return com.google.firebase.crashlytics.device.session.Crashlytics
                  .internal_static_Crashlytics_Session_Event_Application_Execution_BinaryImage_descriptor;
            }

            protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
                internalGetFieldAccessorTable() {
              return com.google.firebase.crashlytics.device.session.Crashlytics
                  .internal_static_Crashlytics_Session_Event_Application_Execution_BinaryImage_fieldAccessorTable;
            }

            private int bitField0_;
            // required uint64 base_address = 1;
            public static final int BASE_ADDRESS_FIELD_NUMBER = 1;
            private long baseAddress_;

            public boolean hasBaseAddress() {
              return ((bitField0_ & 0x00000001) == 0x00000001);
            }

            public long getBaseAddress() {
              return baseAddress_;
            }

            // required uint64 size = 2;
            public static final int SIZE_FIELD_NUMBER = 2;
            private long size_;

            public boolean hasSize() {
              return ((bitField0_ & 0x00000002) == 0x00000002);
            }

            public long getSize() {
              return size_;
            }

            // required string name = 3;
            public static final int NAME_FIELD_NUMBER = 3;
            private java.lang.Object name_;

            public boolean hasName() {
              return ((bitField0_ & 0x00000004) == 0x00000004);
            }

            public String getName() {
              java.lang.Object ref = name_;
              if (ref instanceof String) {
                return (String) ref;
              } else {
                com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                String s = bs.toStringUtf8();
                if (com.google.protobuf.Internal.isValidUtf8(bs)) {
                  name_ = s;
                }
                return s;
              }
            }

            private com.google.protobuf.ByteString getNameBytes() {
              java.lang.Object ref = name_;
              if (ref instanceof String) {
                com.google.protobuf.ByteString b =
                    com.google.protobuf.ByteString.copyFromUtf8((String) ref);
                name_ = b;
                return b;
              } else {
                return (com.google.protobuf.ByteString) ref;
              }
            }

            // optional bytes uuid = 4;
            public static final int UUID_FIELD_NUMBER = 4;
            private com.google.protobuf.ByteString uuid_;

            public boolean hasUuid() {
              return ((bitField0_ & 0x00000008) == 0x00000008);
            }

            public com.google.protobuf.ByteString getUuid() {
              return uuid_;
            }

            // optional .Crashlytics.Architecture arch = 5;
            public static final int ARCH_FIELD_NUMBER = 5;
            private com.google.firebase.crashlytics.device.session.Crashlytics.Architecture arch_;

            public boolean hasArch() {
              return ((bitField0_ & 0x00000010) == 0x00000010);
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Architecture
                getArch() {
              return arch_;
            }

            // optional string cls_id = 6;
            public static final int CLS_ID_FIELD_NUMBER = 6;
            private java.lang.Object clsId_;

            public boolean hasClsId() {
              return ((bitField0_ & 0x00000020) == 0x00000020);
            }

            public String getClsId() {
              java.lang.Object ref = clsId_;
              if (ref instanceof String) {
                return (String) ref;
              } else {
                com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                String s = bs.toStringUtf8();
                if (com.google.protobuf.Internal.isValidUtf8(bs)) {
                  clsId_ = s;
                }
                return s;
              }
            }

            private com.google.protobuf.ByteString getClsIdBytes() {
              java.lang.Object ref = clsId_;
              if (ref instanceof String) {
                com.google.protobuf.ByteString b =
                    com.google.protobuf.ByteString.copyFromUtf8((String) ref);
                clsId_ = b;
                return b;
              } else {
                return (com.google.protobuf.ByteString) ref;
              }
            }

            private void initFields() {
              baseAddress_ = 0L;
              size_ = 0L;
              name_ = "";
              uuid_ = com.google.protobuf.ByteString.EMPTY;
              arch_ =
                  com.google.firebase.crashlytics.device.session.Crashlytics.Architecture.X86_32;
              clsId_ = "";
            }

            private byte memoizedIsInitialized = -1;

            public final boolean isInitialized() {
              byte isInitialized = memoizedIsInitialized;
              if (isInitialized != -1) return isInitialized == 1;

              if (!hasBaseAddress()) {
                memoizedIsInitialized = 0;
                return false;
              }
              if (!hasSize()) {
                memoizedIsInitialized = 0;
                return false;
              }
              if (!hasName()) {
                memoizedIsInitialized = 0;
                return false;
              }
              memoizedIsInitialized = 1;
              return true;
            }

            public void writeTo(com.google.protobuf.CodedOutputStream output)
                throws java.io.IOException {
              getSerializedSize();
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                output.writeUInt64(1, baseAddress_);
              }
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                output.writeUInt64(2, size_);
              }
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                output.writeBytes(3, getNameBytes());
              }
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                output.writeBytes(4, uuid_);
              }
              if (((bitField0_ & 0x00000010) == 0x00000010)) {
                output.writeEnum(5, arch_.getNumber());
              }
              if (((bitField0_ & 0x00000020) == 0x00000020)) {
                output.writeBytes(6, getClsIdBytes());
              }
              getUnknownFields().writeTo(output);
            }

            private int memoizedSerializedSize = -1;

            public int getSerializedSize() {
              int size = memoizedSerializedSize;
              if (size != -1) return size;

              size = 0;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                size += com.google.protobuf.CodedOutputStream.computeUInt64Size(1, baseAddress_);
              }
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                size += com.google.protobuf.CodedOutputStream.computeUInt64Size(2, size_);
              }
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                size += com.google.protobuf.CodedOutputStream.computeBytesSize(3, getNameBytes());
              }
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                size += com.google.protobuf.CodedOutputStream.computeBytesSize(4, uuid_);
              }
              if (((bitField0_ & 0x00000010) == 0x00000010)) {
                size += com.google.protobuf.CodedOutputStream.computeEnumSize(5, arch_.getNumber());
              }
              if (((bitField0_ & 0x00000020) == 0x00000020)) {
                size += com.google.protobuf.CodedOutputStream.computeBytesSize(6, getClsIdBytes());
              }
              size += getUnknownFields().getSerializedSize();
              memoizedSerializedSize = size;
              return size;
            }

            private static final long serialVersionUID = 0L;

            @java.lang.Override
            protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
              return super.writeReplace();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.BinaryImage
                parseFrom(com.google.protobuf.ByteString data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
              return newBuilder().mergeFrom(data).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.BinaryImage
                parseFrom(
                    com.google.protobuf.ByteString data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
              return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.BinaryImage
                parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
              return newBuilder().mergeFrom(data).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.BinaryImage
                parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
              return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.BinaryImage
                parseFrom(java.io.InputStream input) throws java.io.IOException {
              return newBuilder().mergeFrom(input).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.BinaryImage
                parseFrom(
                    java.io.InputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
              return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.BinaryImage
                parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
              Builder builder = newBuilder();
              if (builder.mergeDelimitedFrom(input)) {
                return builder.buildParsed();
              } else {
                return null;
              }
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.BinaryImage
                parseDelimitedFrom(
                    java.io.InputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
              Builder builder = newBuilder();
              if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
                return builder.buildParsed();
              } else {
                return null;
              }
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.BinaryImage
                parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
              return newBuilder().mergeFrom(input).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.BinaryImage
                parseFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
              return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
            }

            public static Builder newBuilder() {
              return Builder.create();
            }

            public Builder newBuilderForType() {
              return newBuilder();
            }

            public static Builder newBuilder(
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.BinaryImage
                    prototype) {
              return newBuilder().mergeFrom(prototype);
            }

            public Builder toBuilder() {
              return newBuilder(this);
            }

            @java.lang.Override
            protected Builder newBuilderForType(
                com.google.protobuf.GeneratedMessage.BuilderParent parent) {
              Builder builder = new Builder(parent);
              return builder;
            }

            public static final class Builder
                extends com.google.protobuf.GeneratedMessage.Builder<Builder>
                implements com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.BinaryImageOrBuilder {
              public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return com.google.firebase.crashlytics.device.session.Crashlytics
                    .internal_static_Crashlytics_Session_Event_Application_Execution_BinaryImage_descriptor;
              }

              protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
                  internalGetFieldAccessorTable() {
                return com.google.firebase.crashlytics.device.session.Crashlytics
                    .internal_static_Crashlytics_Session_Event_Application_Execution_BinaryImage_fieldAccessorTable;
              }

              // Construct using
              // com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application.Execution.BinaryImage.newBuilder()
              private Builder() {
                maybeForceBuilderInitialization();
              }

              private Builder(BuilderParent parent) {
                super(parent);
                maybeForceBuilderInitialization();
              }

              private void maybeForceBuilderInitialization() {
                if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {}
              }

              private static Builder create() {
                return new Builder();
              }

              public Builder clear() {
                super.clear();
                baseAddress_ = 0L;
                bitField0_ = (bitField0_ & ~0x00000001);
                size_ = 0L;
                bitField0_ = (bitField0_ & ~0x00000002);
                name_ = "";
                bitField0_ = (bitField0_ & ~0x00000004);
                uuid_ = com.google.protobuf.ByteString.EMPTY;
                bitField0_ = (bitField0_ & ~0x00000008);
                arch_ =
                    com.google.firebase.crashlytics.device.session.Crashlytics.Architecture.X86_32;
                bitField0_ = (bitField0_ & ~0x00000010);
                clsId_ = "";
                bitField0_ = (bitField0_ & ~0x00000020);
                return this;
              }

              public Builder clone() {
                return create().mergeFrom(buildPartial());
              }

              public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.BinaryImage.getDescriptor();
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.BinaryImage
                  getDefaultInstanceForType() {
                return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.BinaryImage.getDefaultInstance();
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.BinaryImage
                  build() {
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.BinaryImage
                    result = buildPartial();
                if (!result.isInitialized()) {
                  throw newUninitializedMessageException(result);
                }
                return result;
              }

              private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.BinaryImage
                  buildParsed() throws com.google.protobuf.InvalidProtocolBufferException {
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.BinaryImage
                    result = buildPartial();
                if (!result.isInitialized()) {
                  throw newUninitializedMessageException(result).asInvalidProtocolBufferException();
                }
                return result;
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.BinaryImage
                  buildPartial() {
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.BinaryImage
                    result =
                        new com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.BinaryImage(this);
                int from_bitField0_ = bitField0_;
                int to_bitField0_ = 0;
                if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
                  to_bitField0_ |= 0x00000001;
                }
                result.baseAddress_ = baseAddress_;
                if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
                  to_bitField0_ |= 0x00000002;
                }
                result.size_ = size_;
                if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
                  to_bitField0_ |= 0x00000004;
                }
                result.name_ = name_;
                if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
                  to_bitField0_ |= 0x00000008;
                }
                result.uuid_ = uuid_;
                if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
                  to_bitField0_ |= 0x00000010;
                }
                result.arch_ = arch_;
                if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
                  to_bitField0_ |= 0x00000020;
                }
                result.clsId_ = clsId_;
                result.bitField0_ = to_bitField0_;
                onBuilt();
                return result;
              }

              public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other
                    instanceof
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.BinaryImage) {
                  return mergeFrom(
                      (com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .Application.Execution.BinaryImage)
                          other);
                } else {
                  super.mergeFrom(other);
                  return this;
                }
              }

              public Builder mergeFrom(
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.BinaryImage
                      other) {
                if (other
                    == com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.BinaryImage.getDefaultInstance()) return this;
                if (other.hasBaseAddress()) {
                  setBaseAddress(other.getBaseAddress());
                }
                if (other.hasSize()) {
                  setSize(other.getSize());
                }
                if (other.hasName()) {
                  setName(other.getName());
                }
                if (other.hasUuid()) {
                  setUuid(other.getUuid());
                }
                if (other.hasArch()) {
                  setArch(other.getArch());
                }
                if (other.hasClsId()) {
                  setClsId(other.getClsId());
                }
                this.mergeUnknownFields(other.getUnknownFields());
                return this;
              }

              public final boolean isInitialized() {
                if (!hasBaseAddress()) {

                  return false;
                }
                if (!hasSize()) {

                  return false;
                }
                if (!hasName()) {

                  return false;
                }
                return true;
              }

              public Builder mergeFrom(
                  com.google.protobuf.CodedInputStream input,
                  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                  throws java.io.IOException {
                com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                    com.google.protobuf.UnknownFieldSet.newBuilder(this.getUnknownFields());
                while (true) {
                  int tag = input.readTag();
                  switch (tag) {
                    case 0:
                      this.setUnknownFields(unknownFields.build());
                      onChanged();
                      return this;
                    default:
                      {
                        if (!parseUnknownField(
                            input, unknownFields,
                            extensionRegistry, tag)) {
                          this.setUnknownFields(unknownFields.build());
                          onChanged();
                          return this;
                        }
                        break;
                      }
                    case 8:
                      {
                        bitField0_ |= 0x00000001;
                        baseAddress_ = input.readUInt64();
                        break;
                      }
                    case 16:
                      {
                        bitField0_ |= 0x00000002;
                        size_ = input.readUInt64();
                        break;
                      }
                    case 26:
                      {
                        bitField0_ |= 0x00000004;
                        name_ = input.readBytes();
                        break;
                      }
                    case 34:
                      {
                        bitField0_ |= 0x00000008;
                        uuid_ = input.readBytes();
                        break;
                      }
                    case 40:
                      {
                        int rawValue = input.readEnum();
                        com.google.firebase.crashlytics.device.session.Crashlytics.Architecture
                            value =
                                com.google.firebase.crashlytics.device.session.Crashlytics
                                    .Architecture.valueOf(rawValue);
                        if (value == null) {
                          unknownFields.mergeVarintField(5, rawValue);
                        } else {
                          bitField0_ |= 0x00000010;
                          arch_ = value;
                        }
                        break;
                      }
                    case 50:
                      {
                        bitField0_ |= 0x00000020;
                        clsId_ = input.readBytes();
                        break;
                      }
                  }
                }
              }

              private int bitField0_;

              // required uint64 base_address = 1;
              private long baseAddress_;

              public boolean hasBaseAddress() {
                return ((bitField0_ & 0x00000001) == 0x00000001);
              }

              public long getBaseAddress() {
                return baseAddress_;
              }

              public Builder setBaseAddress(long value) {
                bitField0_ |= 0x00000001;
                baseAddress_ = value;
                onChanged();
                return this;
              }

              public Builder clearBaseAddress() {
                bitField0_ = (bitField0_ & ~0x00000001);
                baseAddress_ = 0L;
                onChanged();
                return this;
              }

              // required uint64 size = 2;
              private long size_;

              public boolean hasSize() {
                return ((bitField0_ & 0x00000002) == 0x00000002);
              }

              public long getSize() {
                return size_;
              }

              public Builder setSize(long value) {
                bitField0_ |= 0x00000002;
                size_ = value;
                onChanged();
                return this;
              }

              public Builder clearSize() {
                bitField0_ = (bitField0_ & ~0x00000002);
                size_ = 0L;
                onChanged();
                return this;
              }

              // required string name = 3;
              private java.lang.Object name_ = "";

              public boolean hasName() {
                return ((bitField0_ & 0x00000004) == 0x00000004);
              }

              public String getName() {
                java.lang.Object ref = name_;
                if (!(ref instanceof String)) {
                  String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
                  name_ = s;
                  return s;
                } else {
                  return (String) ref;
                }
              }

              public Builder setName(String value) {
                if (value == null) {
                  throw new NullPointerException();
                }
                bitField0_ |= 0x00000004;
                name_ = value;
                onChanged();
                return this;
              }

              public Builder clearName() {
                bitField0_ = (bitField0_ & ~0x00000004);
                name_ = getDefaultInstance().getName();
                onChanged();
                return this;
              }

              void setName(com.google.protobuf.ByteString value) {
                bitField0_ |= 0x00000004;
                name_ = value;
                onChanged();
              }

              // optional bytes uuid = 4;
              private com.google.protobuf.ByteString uuid_ = com.google.protobuf.ByteString.EMPTY;

              public boolean hasUuid() {
                return ((bitField0_ & 0x00000008) == 0x00000008);
              }

              public com.google.protobuf.ByteString getUuid() {
                return uuid_;
              }

              public Builder setUuid(com.google.protobuf.ByteString value) {
                if (value == null) {
                  throw new NullPointerException();
                }
                bitField0_ |= 0x00000008;
                uuid_ = value;
                onChanged();
                return this;
              }

              public Builder clearUuid() {
                bitField0_ = (bitField0_ & ~0x00000008);
                uuid_ = getDefaultInstance().getUuid();
                onChanged();
                return this;
              }

              // optional .Crashlytics.Architecture arch = 5;
              private com.google.firebase.crashlytics.device.session.Crashlytics.Architecture
                  arch_ =
                      com.google.firebase.crashlytics.device.session.Crashlytics.Architecture
                          .X86_32;

              public boolean hasArch() {
                return ((bitField0_ & 0x00000010) == 0x00000010);
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Architecture
                  getArch() {
                return arch_;
              }

              public Builder setArch(
                  com.google.firebase.crashlytics.device.session.Crashlytics.Architecture value) {
                if (value == null) {
                  throw new NullPointerException();
                }
                bitField0_ |= 0x00000010;
                arch_ = value;
                onChanged();
                return this;
              }

              public Builder clearArch() {
                bitField0_ = (bitField0_ & ~0x00000010);
                arch_ =
                    com.google.firebase.crashlytics.device.session.Crashlytics.Architecture.X86_32;
                onChanged();
                return this;
              }

              // optional string cls_id = 6;
              private java.lang.Object clsId_ = "";

              public boolean hasClsId() {
                return ((bitField0_ & 0x00000020) == 0x00000020);
              }

              public String getClsId() {
                java.lang.Object ref = clsId_;
                if (!(ref instanceof String)) {
                  String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
                  clsId_ = s;
                  return s;
                } else {
                  return (String) ref;
                }
              }

              public Builder setClsId(String value) {
                if (value == null) {
                  throw new NullPointerException();
                }
                bitField0_ |= 0x00000020;
                clsId_ = value;
                onChanged();
                return this;
              }

              public Builder clearClsId() {
                bitField0_ = (bitField0_ & ~0x00000020);
                clsId_ = getDefaultInstance().getClsId();
                onChanged();
                return this;
              }

              void setClsId(com.google.protobuf.ByteString value) {
                bitField0_ |= 0x00000020;
                clsId_ = value;
                onChanged();
              }

              // @@protoc_insertion_point(builder_scope:Crashlytics.Session.Event.Application.Execution.BinaryImage)
            }

            static {
              defaultInstance = new BinaryImage(true);
              defaultInstance.initFields();
            }

            // @@protoc_insertion_point(class_scope:Crashlytics.Session.Event.Application.Execution.BinaryImage)
          }

          private int bitField0_;
          // repeated .Crashlytics.Session.Event.Application.Execution.Thread threads = 1;
          public static final int THREADS_FIELD_NUMBER = 1;
          private java.util.List<
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread>
              threads_;

          public java.util.List<
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Thread>
              getThreadsList() {
            return threads_;
          }

          public java.util.List<
                  ? extends
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.ThreadOrBuilder>
              getThreadsOrBuilderList() {
            return threads_;
          }

          public int getThreadsCount() {
            return threads_.size();
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .Application.Execution.Thread
              getThreads(int index) {
            return threads_.get(index);
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .Application.Execution.ThreadOrBuilder
              getThreadsOrBuilder(int index) {
            return threads_.get(index);
          }

          // optional .Crashlytics.Session.Event.Application.Execution.Exception exception = 2;
          public static final int EXCEPTION_FIELD_NUMBER = 2;
          private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .Application.Execution.Exception
              exception_;

          public boolean hasException() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .Application.Execution.Exception
              getException() {
            return exception_;
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .Application.Execution.ExceptionOrBuilder
              getExceptionOrBuilder() {
            return exception_;
          }

          // required .Crashlytics.Session.Event.Application.Execution.Signal signal = 3;
          public static final int SIGNAL_FIELD_NUMBER = 3;
          private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .Application.Execution.Signal
              signal_;

          public boolean hasSignal() {
            return ((bitField0_ & 0x00000002) == 0x00000002);
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .Application.Execution.Signal
              getSignal() {
            return signal_;
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .Application.Execution.SignalOrBuilder
              getSignalOrBuilder() {
            return signal_;
          }

          // repeated .Crashlytics.Session.Event.Application.Execution.BinaryImage binaries = 4;
          public static final int BINARIES_FIELD_NUMBER = 4;
          private java.util.List<
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.BinaryImage>
              binaries_;

          public java.util.List<
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.BinaryImage>
              getBinariesList() {
            return binaries_;
          }

          public java.util.List<
                  ? extends
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.BinaryImageOrBuilder>
              getBinariesOrBuilderList() {
            return binaries_;
          }

          public int getBinariesCount() {
            return binaries_.size();
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .Application.Execution.BinaryImage
              getBinaries(int index) {
            return binaries_.get(index);
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .Application.Execution.BinaryImageOrBuilder
              getBinariesOrBuilder(int index) {
            return binaries_.get(index);
          }

          private void initFields() {
            threads_ = java.util.Collections.emptyList();
            exception_ =
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                    .Execution.Exception.getDefaultInstance();
            signal_ =
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                    .Execution.Signal.getDefaultInstance();
            binaries_ = java.util.Collections.emptyList();
          }

          private byte memoizedIsInitialized = -1;

          public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized != -1) return isInitialized == 1;

            if (!hasSignal()) {
              memoizedIsInitialized = 0;
              return false;
            }
            for (int i = 0; i < getThreadsCount(); i++) {
              if (!getThreads(i).isInitialized()) {
                memoizedIsInitialized = 0;
                return false;
              }
            }
            if (hasException()) {
              if (!getException().isInitialized()) {
                memoizedIsInitialized = 0;
                return false;
              }
            }
            if (!getSignal().isInitialized()) {
              memoizedIsInitialized = 0;
              return false;
            }
            for (int i = 0; i < getBinariesCount(); i++) {
              if (!getBinaries(i).isInitialized()) {
                memoizedIsInitialized = 0;
                return false;
              }
            }
            memoizedIsInitialized = 1;
            return true;
          }

          public void writeTo(com.google.protobuf.CodedOutputStream output)
              throws java.io.IOException {
            getSerializedSize();
            for (int i = 0; i < threads_.size(); i++) {
              output.writeMessage(1, threads_.get(i));
            }
            if (((bitField0_ & 0x00000001) == 0x00000001)) {
              output.writeMessage(2, exception_);
            }
            if (((bitField0_ & 0x00000002) == 0x00000002)) {
              output.writeMessage(3, signal_);
            }
            for (int i = 0; i < binaries_.size(); i++) {
              output.writeMessage(4, binaries_.get(i));
            }
            getUnknownFields().writeTo(output);
          }

          private int memoizedSerializedSize = -1;

          public int getSerializedSize() {
            int size = memoizedSerializedSize;
            if (size != -1) return size;

            size = 0;
            for (int i = 0; i < threads_.size(); i++) {
              size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, threads_.get(i));
            }
            if (((bitField0_ & 0x00000001) == 0x00000001)) {
              size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, exception_);
            }
            if (((bitField0_ & 0x00000002) == 0x00000002)) {
              size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, signal_);
            }
            for (int i = 0; i < binaries_.size(); i++) {
              size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, binaries_.get(i));
            }
            size += getUnknownFields().getSerializedSize();
            memoizedSerializedSize = size;
            return size;
          }

          private static final long serialVersionUID = 0L;

          @java.lang.Override
          protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
            return super.writeReplace();
          }

          public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .Application.Execution
              parseFrom(com.google.protobuf.ByteString data)
                  throws com.google.protobuf.InvalidProtocolBufferException {
            return newBuilder().mergeFrom(data).buildParsed();
          }

          public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .Application.Execution
              parseFrom(
                  com.google.protobuf.ByteString data,
                  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                  throws com.google.protobuf.InvalidProtocolBufferException {
            return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
          }

          public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .Application.Execution
              parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return newBuilder().mergeFrom(data).buildParsed();
          }

          public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .Application.Execution
              parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                  throws com.google.protobuf.InvalidProtocolBufferException {
            return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
          }

          public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .Application.Execution
              parseFrom(java.io.InputStream input) throws java.io.IOException {
            return newBuilder().mergeFrom(input).buildParsed();
          }

          public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .Application.Execution
              parseFrom(
                  java.io.InputStream input,
                  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                  throws java.io.IOException {
            return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
          }

          public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .Application.Execution
              parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            Builder builder = newBuilder();
            if (builder.mergeDelimitedFrom(input)) {
              return builder.buildParsed();
            } else {
              return null;
            }
          }

          public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .Application.Execution
              parseDelimitedFrom(
                  java.io.InputStream input,
                  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                  throws java.io.IOException {
            Builder builder = newBuilder();
            if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
              return builder.buildParsed();
            } else {
              return null;
            }
          }

          public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .Application.Execution
              parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return newBuilder().mergeFrom(input).buildParsed();
          }

          public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .Application.Execution
              parseFrom(
                  com.google.protobuf.CodedInputStream input,
                  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                  throws java.io.IOException {
            return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
          }

          public static Builder newBuilder() {
            return Builder.create();
          }

          public Builder newBuilderForType() {
            return newBuilder();
          }

          public static Builder newBuilder(
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                      .Execution
                  prototype) {
            return newBuilder().mergeFrom(prototype);
          }

          public Builder toBuilder() {
            return newBuilder(this);
          }

          @java.lang.Override
          protected Builder newBuilderForType(
              com.google.protobuf.GeneratedMessage.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
          }

          public static final class Builder
              extends com.google.protobuf.GeneratedMessage.Builder<Builder>
              implements com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .Application.ExecutionOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
              return com.google.firebase.crashlytics.device.session.Crashlytics
                  .internal_static_Crashlytics_Session_Event_Application_Execution_descriptor;
            }

            protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
                internalGetFieldAccessorTable() {
              return com.google.firebase.crashlytics.device.session.Crashlytics
                  .internal_static_Crashlytics_Session_Event_Application_Execution_fieldAccessorTable;
            }

            // Construct using
            // com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application.Execution.newBuilder()
            private Builder() {
              maybeForceBuilderInitialization();
            }

            private Builder(BuilderParent parent) {
              super(parent);
              maybeForceBuilderInitialization();
            }

            private void maybeForceBuilderInitialization() {
              if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
                getThreadsFieldBuilder();
                getExceptionFieldBuilder();
                getSignalFieldBuilder();
                getBinariesFieldBuilder();
              }
            }

            private static Builder create() {
              return new Builder();
            }

            public Builder clear() {
              super.clear();
              if (threadsBuilder_ == null) {
                threads_ = java.util.Collections.emptyList();
                bitField0_ = (bitField0_ & ~0x00000001);
              } else {
                threadsBuilder_.clear();
              }
              if (exceptionBuilder_ == null) {
                exception_ =
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Exception.getDefaultInstance();
              } else {
                exceptionBuilder_.clear();
              }
              bitField0_ = (bitField0_ & ~0x00000002);
              if (signalBuilder_ == null) {
                signal_ =
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Signal.getDefaultInstance();
              } else {
                signalBuilder_.clear();
              }
              bitField0_ = (bitField0_ & ~0x00000004);
              if (binariesBuilder_ == null) {
                binaries_ = java.util.Collections.emptyList();
                bitField0_ = (bitField0_ & ~0x00000008);
              } else {
                binariesBuilder_.clear();
              }
              return this;
            }

            public Builder clone() {
              return create().mergeFrom(buildPartial());
            }

            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
              return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .Application.Execution.getDescriptor();
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution
                getDefaultInstanceForType() {
              return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .Application.Execution.getDefaultInstance();
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution
                build() {
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                      .Execution
                  result = buildPartial();
              if (!result.isInitialized()) {
                throw newUninitializedMessageException(result);
              }
              return result;
            }

            private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution
                buildParsed() throws com.google.protobuf.InvalidProtocolBufferException {
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                      .Execution
                  result = buildPartial();
              if (!result.isInitialized()) {
                throw newUninitializedMessageException(result).asInvalidProtocolBufferException();
              }
              return result;
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution
                buildPartial() {
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                      .Execution
                  result =
                      new com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution(this);
              int from_bitField0_ = bitField0_;
              int to_bitField0_ = 0;
              if (threadsBuilder_ == null) {
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  threads_ = java.util.Collections.unmodifiableList(threads_);
                  bitField0_ = (bitField0_ & ~0x00000001);
                }
                result.threads_ = threads_;
              } else {
                result.threads_ = threadsBuilder_.build();
              }
              if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
                to_bitField0_ |= 0x00000001;
              }
              if (exceptionBuilder_ == null) {
                result.exception_ = exception_;
              } else {
                result.exception_ = exceptionBuilder_.build();
              }
              if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
                to_bitField0_ |= 0x00000002;
              }
              if (signalBuilder_ == null) {
                result.signal_ = signal_;
              } else {
                result.signal_ = signalBuilder_.build();
              }
              if (binariesBuilder_ == null) {
                if (((bitField0_ & 0x00000008) == 0x00000008)) {
                  binaries_ = java.util.Collections.unmodifiableList(binaries_);
                  bitField0_ = (bitField0_ & ~0x00000008);
                }
                result.binaries_ = binaries_;
              } else {
                result.binaries_ = binariesBuilder_.build();
              }
              result.bitField0_ = to_bitField0_;
              onBuilt();
              return result;
            }

            public Builder mergeFrom(com.google.protobuf.Message other) {
              if (other
                  instanceof
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution) {
                return mergeFrom(
                    (com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution)
                        other);
              } else {
                super.mergeFrom(other);
                return this;
              }
            }

            public Builder mergeFrom(
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution
                    other) {
              if (other
                  == com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.getDefaultInstance()) return this;
              if (threadsBuilder_ == null) {
                if (!other.threads_.isEmpty()) {
                  if (threads_.isEmpty()) {
                    threads_ = other.threads_;
                    bitField0_ = (bitField0_ & ~0x00000001);
                  } else {
                    ensureThreadsIsMutable();
                    threads_.addAll(other.threads_);
                  }
                  onChanged();
                }
              } else {
                if (!other.threads_.isEmpty()) {
                  if (threadsBuilder_.isEmpty()) {
                    threadsBuilder_.dispose();
                    threadsBuilder_ = null;
                    threads_ = other.threads_;
                    bitField0_ = (bitField0_ & ~0x00000001);
                    threadsBuilder_ =
                        com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders
                            ? getThreadsFieldBuilder()
                            : null;
                  } else {
                    threadsBuilder_.addAllMessages(other.threads_);
                  }
                }
              }
              if (other.hasException()) {
                mergeException(other.getException());
              }
              if (other.hasSignal()) {
                mergeSignal(other.getSignal());
              }
              if (binariesBuilder_ == null) {
                if (!other.binaries_.isEmpty()) {
                  if (binaries_.isEmpty()) {
                    binaries_ = other.binaries_;
                    bitField0_ = (bitField0_ & ~0x00000008);
                  } else {
                    ensureBinariesIsMutable();
                    binaries_.addAll(other.binaries_);
                  }
                  onChanged();
                }
              } else {
                if (!other.binaries_.isEmpty()) {
                  if (binariesBuilder_.isEmpty()) {
                    binariesBuilder_.dispose();
                    binariesBuilder_ = null;
                    binaries_ = other.binaries_;
                    bitField0_ = (bitField0_ & ~0x00000008);
                    binariesBuilder_ =
                        com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders
                            ? getBinariesFieldBuilder()
                            : null;
                  } else {
                    binariesBuilder_.addAllMessages(other.binaries_);
                  }
                }
              }
              this.mergeUnknownFields(other.getUnknownFields());
              return this;
            }

            public final boolean isInitialized() {
              if (!hasSignal()) {

                return false;
              }
              for (int i = 0; i < getThreadsCount(); i++) {
                if (!getThreads(i).isInitialized()) {

                  return false;
                }
              }
              if (hasException()) {
                if (!getException().isInitialized()) {

                  return false;
                }
              }
              if (!getSignal().isInitialized()) {

                return false;
              }
              for (int i = 0; i < getBinariesCount(); i++) {
                if (!getBinaries(i).isInitialized()) {

                  return false;
                }
              }
              return true;
            }

            public Builder mergeFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
              com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                  com.google.protobuf.UnknownFieldSet.newBuilder(this.getUnknownFields());
              while (true) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    this.setUnknownFields(unknownFields.build());
                    onChanged();
                    return this;
                  default:
                    {
                      if (!parseUnknownField(
                          input, unknownFields,
                          extensionRegistry, tag)) {
                        this.setUnknownFields(unknownFields.build());
                        onChanged();
                        return this;
                      }
                      break;
                    }
                  case 10:
                    {
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .Application.Execution.Thread.Builder
                          subBuilder =
                              com.google.firebase.crashlytics.device.session.Crashlytics.Session
                                  .Event.Application.Execution.Thread.newBuilder();
                      input.readMessage(subBuilder, extensionRegistry);
                      addThreads(subBuilder.buildPartial());
                      break;
                    }
                  case 18:
                    {
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .Application.Execution.Exception.Builder
                          subBuilder =
                              com.google.firebase.crashlytics.device.session.Crashlytics.Session
                                  .Event.Application.Execution.Exception.newBuilder();
                      if (hasException()) {
                        subBuilder.mergeFrom(getException());
                      }
                      input.readMessage(subBuilder, extensionRegistry);
                      setException(subBuilder.buildPartial());
                      break;
                    }
                  case 26:
                    {
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .Application.Execution.Signal.Builder
                          subBuilder =
                              com.google.firebase.crashlytics.device.session.Crashlytics.Session
                                  .Event.Application.Execution.Signal.newBuilder();
                      if (hasSignal()) {
                        subBuilder.mergeFrom(getSignal());
                      }
                      input.readMessage(subBuilder, extensionRegistry);
                      setSignal(subBuilder.buildPartial());
                      break;
                    }
                  case 34:
                    {
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .Application.Execution.BinaryImage.Builder
                          subBuilder =
                              com.google.firebase.crashlytics.device.session.Crashlytics.Session
                                  .Event.Application.Execution.BinaryImage.newBuilder();
                      input.readMessage(subBuilder, extensionRegistry);
                      addBinaries(subBuilder.buildPartial());
                      break;
                    }
                }
              }
            }

            private int bitField0_;

            // repeated .Crashlytics.Session.Event.Application.Execution.Thread threads = 1;
            private java.util.List<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Thread>
                threads_ = java.util.Collections.emptyList();

            private void ensureThreadsIsMutable() {
              if (!((bitField0_ & 0x00000001) == 0x00000001)) {
                threads_ =
                    new java.util.ArrayList<
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.Thread>(threads_);
                bitField0_ |= 0x00000001;
              }
            }

            private com.google.protobuf.RepeatedFieldBuilder<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Thread,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Thread.Builder,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.ThreadOrBuilder>
                threadsBuilder_;

            public java.util.List<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Thread>
                getThreadsList() {
              if (threadsBuilder_ == null) {
                return java.util.Collections.unmodifiableList(threads_);
              } else {
                return threadsBuilder_.getMessageList();
              }
            }

            public int getThreadsCount() {
              if (threadsBuilder_ == null) {
                return threads_.size();
              } else {
                return threadsBuilder_.getCount();
              }
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Thread
                getThreads(int index) {
              if (threadsBuilder_ == null) {
                return threads_.get(index);
              } else {
                return threadsBuilder_.getMessage(index);
              }
            }

            public Builder setThreads(
                int index,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.Thread
                    value) {
              if (threadsBuilder_ == null) {
                if (value == null) {
                  throw new NullPointerException();
                }
                ensureThreadsIsMutable();
                threads_.set(index, value);
                onChanged();
              } else {
                threadsBuilder_.setMessage(index, value);
              }
              return this;
            }

            public Builder setThreads(
                int index,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.Thread.Builder
                    builderForValue) {
              if (threadsBuilder_ == null) {
                ensureThreadsIsMutable();
                threads_.set(index, builderForValue.build());
                onChanged();
              } else {
                threadsBuilder_.setMessage(index, builderForValue.build());
              }
              return this;
            }

            public Builder addThreads(
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.Thread
                    value) {
              if (threadsBuilder_ == null) {
                if (value == null) {
                  throw new NullPointerException();
                }
                ensureThreadsIsMutable();
                threads_.add(value);
                onChanged();
              } else {
                threadsBuilder_.addMessage(value);
              }
              return this;
            }

            public Builder addThreads(
                int index,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.Thread
                    value) {
              if (threadsBuilder_ == null) {
                if (value == null) {
                  throw new NullPointerException();
                }
                ensureThreadsIsMutable();
                threads_.add(index, value);
                onChanged();
              } else {
                threadsBuilder_.addMessage(index, value);
              }
              return this;
            }

            public Builder addThreads(
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.Thread.Builder
                    builderForValue) {
              if (threadsBuilder_ == null) {
                ensureThreadsIsMutable();
                threads_.add(builderForValue.build());
                onChanged();
              } else {
                threadsBuilder_.addMessage(builderForValue.build());
              }
              return this;
            }

            public Builder addThreads(
                int index,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.Thread.Builder
                    builderForValue) {
              if (threadsBuilder_ == null) {
                ensureThreadsIsMutable();
                threads_.add(index, builderForValue.build());
                onChanged();
              } else {
                threadsBuilder_.addMessage(index, builderForValue.build());
              }
              return this;
            }

            public Builder addAllThreads(
                java.lang.Iterable<
                        ? extends
                            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                                .Application.Execution.Thread>
                    values) {
              if (threadsBuilder_ == null) {
                ensureThreadsIsMutable();
                super.addAll(values, threads_);
                onChanged();
              } else {
                threadsBuilder_.addAllMessages(values);
              }
              return this;
            }

            public Builder clearThreads() {
              if (threadsBuilder_ == null) {
                threads_ = java.util.Collections.emptyList();
                bitField0_ = (bitField0_ & ~0x00000001);
                onChanged();
              } else {
                threadsBuilder_.clear();
              }
              return this;
            }

            public Builder removeThreads(int index) {
              if (threadsBuilder_ == null) {
                ensureThreadsIsMutable();
                threads_.remove(index);
                onChanged();
              } else {
                threadsBuilder_.remove(index);
              }
              return this;
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Thread.Builder
                getThreadsBuilder(int index) {
              return getThreadsFieldBuilder().getBuilder(index);
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.ThreadOrBuilder
                getThreadsOrBuilder(int index) {
              if (threadsBuilder_ == null) {
                return threads_.get(index);
              } else {
                return threadsBuilder_.getMessageOrBuilder(index);
              }
            }

            public java.util.List<
                    ? extends
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.ThreadOrBuilder>
                getThreadsOrBuilderList() {
              if (threadsBuilder_ != null) {
                return threadsBuilder_.getMessageOrBuilderList();
              } else {
                return java.util.Collections.unmodifiableList(threads_);
              }
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Thread.Builder
                addThreadsBuilder() {
              return getThreadsFieldBuilder()
                  .addBuilder(
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.getDefaultInstance());
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Thread.Builder
                addThreadsBuilder(int index) {
              return getThreadsFieldBuilder()
                  .addBuilder(
                      index,
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Thread.getDefaultInstance());
            }

            public java.util.List<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Thread.Builder>
                getThreadsBuilderList() {
              return getThreadsFieldBuilder().getBuilderList();
            }

            private com.google.protobuf.RepeatedFieldBuilder<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Thread,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Thread.Builder,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.ThreadOrBuilder>
                getThreadsFieldBuilder() {
              if (threadsBuilder_ == null) {
                threadsBuilder_ =
                    new com.google.protobuf.RepeatedFieldBuilder<
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.Thread,
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.Thread.Builder,
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.ThreadOrBuilder>(
                        threads_,
                        ((bitField0_ & 0x00000001) == 0x00000001),
                        getParentForChildren(),
                        isClean());
                threads_ = null;
              }
              return threadsBuilder_;
            }

            // optional .Crashlytics.Session.Event.Application.Execution.Exception exception = 2;
            private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Exception
                exception_ =
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Exception.getDefaultInstance();
            private com.google.protobuf.SingleFieldBuilder<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Exception,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Exception.Builder,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.ExceptionOrBuilder>
                exceptionBuilder_;

            public boolean hasException() {
              return ((bitField0_ & 0x00000002) == 0x00000002);
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Exception
                getException() {
              if (exceptionBuilder_ == null) {
                return exception_;
              } else {
                return exceptionBuilder_.getMessage();
              }
            }

            public Builder setException(
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.Exception
                    value) {
              if (exceptionBuilder_ == null) {
                if (value == null) {
                  throw new NullPointerException();
                }
                exception_ = value;
                onChanged();
              } else {
                exceptionBuilder_.setMessage(value);
              }
              bitField0_ |= 0x00000002;
              return this;
            }

            public Builder setException(
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.Exception.Builder
                    builderForValue) {
              if (exceptionBuilder_ == null) {
                exception_ = builderForValue.build();
                onChanged();
              } else {
                exceptionBuilder_.setMessage(builderForValue.build());
              }
              bitField0_ |= 0x00000002;
              return this;
            }

            public Builder mergeException(
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.Exception
                    value) {
              if (exceptionBuilder_ == null) {
                if (((bitField0_ & 0x00000002) == 0x00000002)
                    && exception_
                        != com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.Exception.getDefaultInstance()) {
                  exception_ =
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Exception.newBuilder(exception_)
                          .mergeFrom(value)
                          .buildPartial();
                } else {
                  exception_ = value;
                }
                onChanged();
              } else {
                exceptionBuilder_.mergeFrom(value);
              }
              bitField0_ |= 0x00000002;
              return this;
            }

            public Builder clearException() {
              if (exceptionBuilder_ == null) {
                exception_ =
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Exception.getDefaultInstance();
                onChanged();
              } else {
                exceptionBuilder_.clear();
              }
              bitField0_ = (bitField0_ & ~0x00000002);
              return this;
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Exception.Builder
                getExceptionBuilder() {
              bitField0_ |= 0x00000002;
              onChanged();
              return getExceptionFieldBuilder().getBuilder();
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.ExceptionOrBuilder
                getExceptionOrBuilder() {
              if (exceptionBuilder_ != null) {
                return exceptionBuilder_.getMessageOrBuilder();
              } else {
                return exception_;
              }
            }

            private com.google.protobuf.SingleFieldBuilder<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Exception,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Exception.Builder,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.ExceptionOrBuilder>
                getExceptionFieldBuilder() {
              if (exceptionBuilder_ == null) {
                exceptionBuilder_ =
                    new com.google.protobuf.SingleFieldBuilder<
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.Exception,
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.Exception.Builder,
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.ExceptionOrBuilder>(
                        exception_, getParentForChildren(), isClean());
                exception_ = null;
              }
              return exceptionBuilder_;
            }

            // required .Crashlytics.Session.Event.Application.Execution.Signal signal = 3;
            private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Signal
                signal_ =
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Signal.getDefaultInstance();
            private com.google.protobuf.SingleFieldBuilder<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Signal,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Signal.Builder,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.SignalOrBuilder>
                signalBuilder_;

            public boolean hasSignal() {
              return ((bitField0_ & 0x00000004) == 0x00000004);
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Signal
                getSignal() {
              if (signalBuilder_ == null) {
                return signal_;
              } else {
                return signalBuilder_.getMessage();
              }
            }

            public Builder setSignal(
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.Signal
                    value) {
              if (signalBuilder_ == null) {
                if (value == null) {
                  throw new NullPointerException();
                }
                signal_ = value;
                onChanged();
              } else {
                signalBuilder_.setMessage(value);
              }
              bitField0_ |= 0x00000004;
              return this;
            }

            public Builder setSignal(
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.Signal.Builder
                    builderForValue) {
              if (signalBuilder_ == null) {
                signal_ = builderForValue.build();
                onChanged();
              } else {
                signalBuilder_.setMessage(builderForValue.build());
              }
              bitField0_ |= 0x00000004;
              return this;
            }

            public Builder mergeSignal(
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.Signal
                    value) {
              if (signalBuilder_ == null) {
                if (((bitField0_ & 0x00000004) == 0x00000004)
                    && signal_
                        != com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.Signal.getDefaultInstance()) {
                  signal_ =
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Signal.newBuilder(signal_)
                          .mergeFrom(value)
                          .buildPartial();
                } else {
                  signal_ = value;
                }
                onChanged();
              } else {
                signalBuilder_.mergeFrom(value);
              }
              bitField0_ |= 0x00000004;
              return this;
            }

            public Builder clearSignal() {
              if (signalBuilder_ == null) {
                signal_ =
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Signal.getDefaultInstance();
                onChanged();
              } else {
                signalBuilder_.clear();
              }
              bitField0_ = (bitField0_ & ~0x00000004);
              return this;
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.Signal.Builder
                getSignalBuilder() {
              bitField0_ |= 0x00000004;
              onChanged();
              return getSignalFieldBuilder().getBuilder();
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.SignalOrBuilder
                getSignalOrBuilder() {
              if (signalBuilder_ != null) {
                return signalBuilder_.getMessageOrBuilder();
              } else {
                return signal_;
              }
            }

            private com.google.protobuf.SingleFieldBuilder<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Signal,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Signal.Builder,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.SignalOrBuilder>
                getSignalFieldBuilder() {
              if (signalBuilder_ == null) {
                signalBuilder_ =
                    new com.google.protobuf.SingleFieldBuilder<
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.Signal,
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.Signal.Builder,
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.SignalOrBuilder>(
                        signal_, getParentForChildren(), isClean());
                signal_ = null;
              }
              return signalBuilder_;
            }

            // repeated .Crashlytics.Session.Event.Application.Execution.BinaryImage binaries = 4;
            private java.util.List<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.BinaryImage>
                binaries_ = java.util.Collections.emptyList();

            private void ensureBinariesIsMutable() {
              if (!((bitField0_ & 0x00000008) == 0x00000008)) {
                binaries_ =
                    new java.util.ArrayList<
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.BinaryImage>(binaries_);
                bitField0_ |= 0x00000008;
              }
            }

            private com.google.protobuf.RepeatedFieldBuilder<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.BinaryImage,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.BinaryImage.Builder,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.BinaryImageOrBuilder>
                binariesBuilder_;

            public java.util.List<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.BinaryImage>
                getBinariesList() {
              if (binariesBuilder_ == null) {
                return java.util.Collections.unmodifiableList(binaries_);
              } else {
                return binariesBuilder_.getMessageList();
              }
            }

            public int getBinariesCount() {
              if (binariesBuilder_ == null) {
                return binaries_.size();
              } else {
                return binariesBuilder_.getCount();
              }
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.BinaryImage
                getBinaries(int index) {
              if (binariesBuilder_ == null) {
                return binaries_.get(index);
              } else {
                return binariesBuilder_.getMessage(index);
              }
            }

            public Builder setBinaries(
                int index,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.BinaryImage
                    value) {
              if (binariesBuilder_ == null) {
                if (value == null) {
                  throw new NullPointerException();
                }
                ensureBinariesIsMutable();
                binaries_.set(index, value);
                onChanged();
              } else {
                binariesBuilder_.setMessage(index, value);
              }
              return this;
            }

            public Builder setBinaries(
                int index,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.BinaryImage.Builder
                    builderForValue) {
              if (binariesBuilder_ == null) {
                ensureBinariesIsMutable();
                binaries_.set(index, builderForValue.build());
                onChanged();
              } else {
                binariesBuilder_.setMessage(index, builderForValue.build());
              }
              return this;
            }

            public Builder addBinaries(
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.BinaryImage
                    value) {
              if (binariesBuilder_ == null) {
                if (value == null) {
                  throw new NullPointerException();
                }
                ensureBinariesIsMutable();
                binaries_.add(value);
                onChanged();
              } else {
                binariesBuilder_.addMessage(value);
              }
              return this;
            }

            public Builder addBinaries(
                int index,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.BinaryImage
                    value) {
              if (binariesBuilder_ == null) {
                if (value == null) {
                  throw new NullPointerException();
                }
                ensureBinariesIsMutable();
                binaries_.add(index, value);
                onChanged();
              } else {
                binariesBuilder_.addMessage(index, value);
              }
              return this;
            }

            public Builder addBinaries(
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.BinaryImage.Builder
                    builderForValue) {
              if (binariesBuilder_ == null) {
                ensureBinariesIsMutable();
                binaries_.add(builderForValue.build());
                onChanged();
              } else {
                binariesBuilder_.addMessage(builderForValue.build());
              }
              return this;
            }

            public Builder addBinaries(
                int index,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                        .Execution.BinaryImage.Builder
                    builderForValue) {
              if (binariesBuilder_ == null) {
                ensureBinariesIsMutable();
                binaries_.add(index, builderForValue.build());
                onChanged();
              } else {
                binariesBuilder_.addMessage(index, builderForValue.build());
              }
              return this;
            }

            public Builder addAllBinaries(
                java.lang.Iterable<
                        ? extends
                            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                                .Application.Execution.BinaryImage>
                    values) {
              if (binariesBuilder_ == null) {
                ensureBinariesIsMutable();
                super.addAll(values, binaries_);
                onChanged();
              } else {
                binariesBuilder_.addAllMessages(values);
              }
              return this;
            }

            public Builder clearBinaries() {
              if (binariesBuilder_ == null) {
                binaries_ = java.util.Collections.emptyList();
                bitField0_ = (bitField0_ & ~0x00000008);
                onChanged();
              } else {
                binariesBuilder_.clear();
              }
              return this;
            }

            public Builder removeBinaries(int index) {
              if (binariesBuilder_ == null) {
                ensureBinariesIsMutable();
                binaries_.remove(index);
                onChanged();
              } else {
                binariesBuilder_.remove(index);
              }
              return this;
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.BinaryImage.Builder
                getBinariesBuilder(int index) {
              return getBinariesFieldBuilder().getBuilder(index);
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.BinaryImageOrBuilder
                getBinariesOrBuilder(int index) {
              if (binariesBuilder_ == null) {
                return binaries_.get(index);
              } else {
                return binariesBuilder_.getMessageOrBuilder(index);
              }
            }

            public java.util.List<
                    ? extends
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.BinaryImageOrBuilder>
                getBinariesOrBuilderList() {
              if (binariesBuilder_ != null) {
                return binariesBuilder_.getMessageOrBuilderList();
              } else {
                return java.util.Collections.unmodifiableList(binaries_);
              }
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.BinaryImage.Builder
                addBinariesBuilder() {
              return getBinariesFieldBuilder()
                  .addBuilder(
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.BinaryImage.getDefaultInstance());
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.Execution.BinaryImage.Builder
                addBinariesBuilder(int index) {
              return getBinariesFieldBuilder()
                  .addBuilder(
                      index,
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.BinaryImage.getDefaultInstance());
            }

            public java.util.List<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.BinaryImage.Builder>
                getBinariesBuilderList() {
              return getBinariesFieldBuilder().getBuilderList();
            }

            private com.google.protobuf.RepeatedFieldBuilder<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.BinaryImage,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.BinaryImage.Builder,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.BinaryImageOrBuilder>
                getBinariesFieldBuilder() {
              if (binariesBuilder_ == null) {
                binariesBuilder_ =
                    new com.google.protobuf.RepeatedFieldBuilder<
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.BinaryImage,
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.BinaryImage.Builder,
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.BinaryImageOrBuilder>(
                        binaries_,
                        ((bitField0_ & 0x00000008) == 0x00000008),
                        getParentForChildren(),
                        isClean());
                binaries_ = null;
              }
              return binariesBuilder_;
            }

            // @@protoc_insertion_point(builder_scope:Crashlytics.Session.Event.Application.Execution)
          }

          static {
            defaultInstance = new Execution(true);
            defaultInstance.initFields();
          }

          // @@protoc_insertion_point(class_scope:Crashlytics.Session.Event.Application.Execution)
        }

        private int bitField0_;
        // required .Crashlytics.Session.Event.Application.Execution execution = 1;
        public static final int EXECUTION_FIELD_NUMBER = 1;
        private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                .Execution
            execution_;

        public boolean hasExecution() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                .Execution
            getExecution() {
          return execution_;
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                .ExecutionOrBuilder
            getExecutionOrBuilder() {
          return execution_;
        }

        // repeated .Crashlytics.CustomAttribute custom_attributes = 2;
        public static final int CUSTOM_ATTRIBUTES_FIELD_NUMBER = 2;
        private java.util.List<
                com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute>
            customAttributes_;

        public java.util.List<
                com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute>
            getCustomAttributesList() {
          return customAttributes_;
        }

        public java.util.List<
                ? extends
                    com.google.firebase.crashlytics.device.session.Crashlytics
                        .CustomAttributeOrBuilder>
            getCustomAttributesOrBuilderList() {
          return customAttributes_;
        }

        public int getCustomAttributesCount() {
          return customAttributes_.size();
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
            getCustomAttributes(int index) {
          return customAttributes_.get(index);
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttributeOrBuilder
            getCustomAttributesOrBuilder(int index) {
          return customAttributes_.get(index);
        }

        // optional bool background = 3;
        public static final int BACKGROUND_FIELD_NUMBER = 3;
        private boolean background_;

        public boolean hasBackground() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }

        public boolean getBackground() {
          return background_;
        }

        // optional uint32 ui_orientation = 4;
        public static final int UI_ORIENTATION_FIELD_NUMBER = 4;
        private int uiOrientation_;

        public boolean hasUiOrientation() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }

        public int getUiOrientation() {
          return uiOrientation_;
        }

        private void initFields() {
          execution_ =
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                  .Execution.getDefaultInstance();
          customAttributes_ = java.util.Collections.emptyList();
          background_ = false;
          uiOrientation_ = 0;
        }

        private byte memoizedIsInitialized = -1;

        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized != -1) return isInitialized == 1;

          if (!hasExecution()) {
            memoizedIsInitialized = 0;
            return false;
          }
          if (!getExecution().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
          for (int i = 0; i < getCustomAttributesCount(); i++) {
            if (!getCustomAttributes(i).isInitialized()) {
              memoizedIsInitialized = 0;
              return false;
            }
          }
          memoizedIsInitialized = 1;
          return true;
        }

        public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
          getSerializedSize();
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            output.writeMessage(1, execution_);
          }
          for (int i = 0; i < customAttributes_.size(); i++) {
            output.writeMessage(2, customAttributes_.get(i));
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            output.writeBool(3, background_);
          }
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            output.writeUInt32(4, uiOrientation_);
          }
          getUnknownFields().writeTo(output);
        }

        private int memoizedSerializedSize = -1;

        public int getSerializedSize() {
          int size = memoizedSerializedSize;
          if (size != -1) return size;

          size = 0;
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, execution_);
          }
          for (int i = 0; i < customAttributes_.size(); i++) {
            size +=
                com.google.protobuf.CodedOutputStream.computeMessageSize(
                    2, customAttributes_.get(i));
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, background_);
          }
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            size += com.google.protobuf.CodedOutputStream.computeUInt32Size(4, uiOrientation_);
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSerializedSize = size;
          return size;
        }

        private static final long serialVersionUID = 0L;

        @java.lang.Override
        protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
          return super.writeReplace();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .Application
            parseFrom(com.google.protobuf.ByteString data)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .Application
            parseFrom(
                com.google.protobuf.ByteString data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .Application
            parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .Application
            parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .Application
            parseFrom(java.io.InputStream input) throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .Application
            parseFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .Application
            parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .Application
            parseDelimitedFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .Application
            parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .Application
            parseFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
        }

        public static Builder newBuilder() {
          return Builder.create();
        }

        public Builder newBuilderForType() {
          return newBuilder();
        }

        public static Builder newBuilder(
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                prototype) {
          return newBuilder().mergeFrom(prototype);
        }

        public Builder toBuilder() {
          return newBuilder(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }

        public static final class Builder
            extends com.google.protobuf.GeneratedMessage.Builder<Builder>
            implements com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .ApplicationOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return com.google.firebase.crashlytics.device.session.Crashlytics
                .internal_static_Crashlytics_Session_Event_Application_descriptor;
          }

          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return com.google.firebase.crashlytics.device.session.Crashlytics
                .internal_static_Crashlytics_Session_Event_Application_fieldAccessorTable;
          }

          // Construct using
          // com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }

          private Builder(BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }

          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
              getExecutionFieldBuilder();
              getCustomAttributesFieldBuilder();
            }
          }

          private static Builder create() {
            return new Builder();
          }

          public Builder clear() {
            super.clear();
            if (executionBuilder_ == null) {
              execution_ =
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.getDefaultInstance();
            } else {
              executionBuilder_.clear();
            }
            bitField0_ = (bitField0_ & ~0x00000001);
            if (customAttributesBuilder_ == null) {
              customAttributes_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              customAttributesBuilder_.clear();
            }
            background_ = false;
            bitField0_ = (bitField0_ & ~0x00000004);
            uiOrientation_ = 0;
            bitField0_ = (bitField0_ & ~0x00000008);
            return this;
          }

          public Builder clone() {
            return create().mergeFrom(buildPartial());
          }

          public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
            return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .Application.getDescriptor();
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .Application
              getDefaultInstanceForType() {
            return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .Application.getDefaultInstance();
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .Application
              build() {
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .Application
              buildParsed() throws com.google.protobuf.InvalidProtocolBufferException {
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result).asInvalidProtocolBufferException();
            }
            return result;
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .Application
              buildPartial() {
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                result =
                    new com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application(this);
            int from_bitField0_ = bitField0_;
            int to_bitField0_ = 0;
            if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
              to_bitField0_ |= 0x00000001;
            }
            if (executionBuilder_ == null) {
              result.execution_ = execution_;
            } else {
              result.execution_ = executionBuilder_.build();
            }
            if (customAttributesBuilder_ == null) {
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                customAttributes_ = java.util.Collections.unmodifiableList(customAttributes_);
                bitField0_ = (bitField0_ & ~0x00000002);
              }
              result.customAttributes_ = customAttributes_;
            } else {
              result.customAttributes_ = customAttributesBuilder_.build();
            }
            if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
              to_bitField0_ |= 0x00000002;
            }
            result.background_ = background_;
            if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
              to_bitField0_ |= 0x00000004;
            }
            result.uiOrientation_ = uiOrientation_;
            result.bitField0_ = to_bitField0_;
            onBuilt();
            return result;
          }

          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other
                instanceof
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application) {
              return mergeFrom(
                  (com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application)
                      other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                  other) {
            if (other
                == com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application.getDefaultInstance()) return this;
            if (other.hasExecution()) {
              mergeExecution(other.getExecution());
            }
            if (customAttributesBuilder_ == null) {
              if (!other.customAttributes_.isEmpty()) {
                if (customAttributes_.isEmpty()) {
                  customAttributes_ = other.customAttributes_;
                  bitField0_ = (bitField0_ & ~0x00000002);
                } else {
                  ensureCustomAttributesIsMutable();
                  customAttributes_.addAll(other.customAttributes_);
                }
                onChanged();
              }
            } else {
              if (!other.customAttributes_.isEmpty()) {
                if (customAttributesBuilder_.isEmpty()) {
                  customAttributesBuilder_.dispose();
                  customAttributesBuilder_ = null;
                  customAttributes_ = other.customAttributes_;
                  bitField0_ = (bitField0_ & ~0x00000002);
                  customAttributesBuilder_ =
                      com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders
                          ? getCustomAttributesFieldBuilder()
                          : null;
                } else {
                  customAttributesBuilder_.addAllMessages(other.customAttributes_);
                }
              }
            }
            if (other.hasBackground()) {
              setBackground(other.getBackground());
            }
            if (other.hasUiOrientation()) {
              setUiOrientation(other.getUiOrientation());
            }
            this.mergeUnknownFields(other.getUnknownFields());
            return this;
          }

          public final boolean isInitialized() {
            if (!hasExecution()) {

              return false;
            }
            if (!getExecution().isInitialized()) {

              return false;
            }
            for (int i = 0; i < getCustomAttributesCount(); i++) {
              if (!getCustomAttributes(i).isInitialized()) {

                return false;
              }
            }
            return true;
          }

          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                com.google.protobuf.UnknownFieldSet.newBuilder(this.getUnknownFields());
            while (true) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                default:
                  {
                    if (!parseUnknownField(
                        input, unknownFields,
                        extensionRegistry, tag)) {
                      this.setUnknownFields(unknownFields.build());
                      onChanged();
                      return this;
                    }
                    break;
                  }
                case 10:
                  {
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .Application.Execution.Builder
                        subBuilder =
                            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                                .Application.Execution.newBuilder();
                    if (hasExecution()) {
                      subBuilder.mergeFrom(getExecution());
                    }
                    input.readMessage(subBuilder, extensionRegistry);
                    setExecution(subBuilder.buildPartial());
                    break;
                  }
                case 18:
                  {
                    com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
                            .Builder
                        subBuilder =
                            com.google.firebase.crashlytics.device.session.Crashlytics
                                .CustomAttribute.newBuilder();
                    input.readMessage(subBuilder, extensionRegistry);
                    addCustomAttributes(subBuilder.buildPartial());
                    break;
                  }
                case 24:
                  {
                    bitField0_ |= 0x00000004;
                    background_ = input.readBool();
                    break;
                  }
                case 32:
                  {
                    bitField0_ |= 0x00000008;
                    uiOrientation_ = input.readUInt32();
                    break;
                  }
              }
            }
          }

          private int bitField0_;

          // required .Crashlytics.Session.Event.Application.Execution execution = 1;
          private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .Application.Execution
              execution_ =
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.getDefaultInstance();
          private com.google.protobuf.SingleFieldBuilder<
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Builder,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.ExecutionOrBuilder>
              executionBuilder_;

          public boolean hasExecution() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .Application.Execution
              getExecution() {
            if (executionBuilder_ == null) {
              return execution_;
            } else {
              return executionBuilder_.getMessage();
            }
          }

          public Builder setExecution(
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                      .Execution
                  value) {
            if (executionBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              execution_ = value;
              onChanged();
            } else {
              executionBuilder_.setMessage(value);
            }
            bitField0_ |= 0x00000001;
            return this;
          }

          public Builder setExecution(
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                      .Execution.Builder
                  builderForValue) {
            if (executionBuilder_ == null) {
              execution_ = builderForValue.build();
              onChanged();
            } else {
              executionBuilder_.setMessage(builderForValue.build());
            }
            bitField0_ |= 0x00000001;
            return this;
          }

          public Builder mergeExecution(
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                      .Execution
                  value) {
            if (executionBuilder_ == null) {
              if (((bitField0_ & 0x00000001) == 0x00000001)
                  && execution_
                      != com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.getDefaultInstance()) {
                execution_ =
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.newBuilder(execution_)
                        .mergeFrom(value)
                        .buildPartial();
              } else {
                execution_ = value;
              }
              onChanged();
            } else {
              executionBuilder_.mergeFrom(value);
            }
            bitField0_ |= 0x00000001;
            return this;
          }

          public Builder clearExecution() {
            if (executionBuilder_ == null) {
              execution_ =
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.getDefaultInstance();
              onChanged();
            } else {
              executionBuilder_.clear();
            }
            bitField0_ = (bitField0_ & ~0x00000001);
            return this;
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .Application.Execution.Builder
              getExecutionBuilder() {
            bitField0_ |= 0x00000001;
            onChanged();
            return getExecutionFieldBuilder().getBuilder();
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .Application.ExecutionOrBuilder
              getExecutionOrBuilder() {
            if (executionBuilder_ != null) {
              return executionBuilder_.getMessageOrBuilder();
            } else {
              return execution_;
            }
          }

          private com.google.protobuf.SingleFieldBuilder<
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.Execution.Builder,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.ExecutionOrBuilder>
              getExecutionFieldBuilder() {
            if (executionBuilder_ == null) {
              executionBuilder_ =
                  new com.google.protobuf.SingleFieldBuilder<
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution,
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Execution.Builder,
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.ExecutionOrBuilder>(
                      execution_, getParentForChildren(), isClean());
              execution_ = null;
            }
            return executionBuilder_;
          }

          // repeated .Crashlytics.CustomAttribute custom_attributes = 2;
          private java.util.List<
                  com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute>
              customAttributes_ = java.util.Collections.emptyList();

          private void ensureCustomAttributesIsMutable() {
            if (!((bitField0_ & 0x00000002) == 0x00000002)) {
              customAttributes_ =
                  new java.util.ArrayList<
                      com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute>(
                      customAttributes_);
              bitField0_ |= 0x00000002;
            }
          }

          private com.google.protobuf.RepeatedFieldBuilder<
                  com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute,
                  com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
                      .Builder,
                  com.google.firebase.crashlytics.device.session.Crashlytics
                      .CustomAttributeOrBuilder>
              customAttributesBuilder_;

          public java.util.List<
                  com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute>
              getCustomAttributesList() {
            if (customAttributesBuilder_ == null) {
              return java.util.Collections.unmodifiableList(customAttributes_);
            } else {
              return customAttributesBuilder_.getMessageList();
            }
          }

          public int getCustomAttributesCount() {
            if (customAttributesBuilder_ == null) {
              return customAttributes_.size();
            } else {
              return customAttributesBuilder_.getCount();
            }
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
              getCustomAttributes(int index) {
            if (customAttributesBuilder_ == null) {
              return customAttributes_.get(index);
            } else {
              return customAttributesBuilder_.getMessage(index);
            }
          }

          public Builder setCustomAttributes(
              int index,
              com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute value) {
            if (customAttributesBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureCustomAttributesIsMutable();
              customAttributes_.set(index, value);
              onChanged();
            } else {
              customAttributesBuilder_.setMessage(index, value);
            }
            return this;
          }

          public Builder setCustomAttributes(
              int index,
              com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute.Builder
                  builderForValue) {
            if (customAttributesBuilder_ == null) {
              ensureCustomAttributesIsMutable();
              customAttributes_.set(index, builderForValue.build());
              onChanged();
            } else {
              customAttributesBuilder_.setMessage(index, builderForValue.build());
            }
            return this;
          }

          public Builder addCustomAttributes(
              com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute value) {
            if (customAttributesBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureCustomAttributesIsMutable();
              customAttributes_.add(value);
              onChanged();
            } else {
              customAttributesBuilder_.addMessage(value);
            }
            return this;
          }

          public Builder addCustomAttributes(
              int index,
              com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute value) {
            if (customAttributesBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureCustomAttributesIsMutable();
              customAttributes_.add(index, value);
              onChanged();
            } else {
              customAttributesBuilder_.addMessage(index, value);
            }
            return this;
          }

          public Builder addCustomAttributes(
              com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute.Builder
                  builderForValue) {
            if (customAttributesBuilder_ == null) {
              ensureCustomAttributesIsMutable();
              customAttributes_.add(builderForValue.build());
              onChanged();
            } else {
              customAttributesBuilder_.addMessage(builderForValue.build());
            }
            return this;
          }

          public Builder addCustomAttributes(
              int index,
              com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute.Builder
                  builderForValue) {
            if (customAttributesBuilder_ == null) {
              ensureCustomAttributesIsMutable();
              customAttributes_.add(index, builderForValue.build());
              onChanged();
            } else {
              customAttributesBuilder_.addMessage(index, builderForValue.build());
            }
            return this;
          }

          public Builder addAllCustomAttributes(
              java.lang.Iterable<
                      ? extends
                          com.google.firebase.crashlytics.device.session.Crashlytics
                              .CustomAttribute>
                  values) {
            if (customAttributesBuilder_ == null) {
              ensureCustomAttributesIsMutable();
              super.addAll(values, customAttributes_);
              onChanged();
            } else {
              customAttributesBuilder_.addAllMessages(values);
            }
            return this;
          }

          public Builder clearCustomAttributes() {
            if (customAttributesBuilder_ == null) {
              customAttributes_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000002);
              onChanged();
            } else {
              customAttributesBuilder_.clear();
            }
            return this;
          }

          public Builder removeCustomAttributes(int index) {
            if (customAttributesBuilder_ == null) {
              ensureCustomAttributesIsMutable();
              customAttributes_.remove(index);
              onChanged();
            } else {
              customAttributesBuilder_.remove(index);
            }
            return this;
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute.Builder
              getCustomAttributesBuilder(int index) {
            return getCustomAttributesFieldBuilder().getBuilder(index);
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttributeOrBuilder
              getCustomAttributesOrBuilder(int index) {
            if (customAttributesBuilder_ == null) {
              return customAttributes_.get(index);
            } else {
              return customAttributesBuilder_.getMessageOrBuilder(index);
            }
          }

          public java.util.List<
                  ? extends
                      com.google.firebase.crashlytics.device.session.Crashlytics
                          .CustomAttributeOrBuilder>
              getCustomAttributesOrBuilderList() {
            if (customAttributesBuilder_ != null) {
              return customAttributesBuilder_.getMessageOrBuilderList();
            } else {
              return java.util.Collections.unmodifiableList(customAttributes_);
            }
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute.Builder
              addCustomAttributesBuilder() {
            return getCustomAttributesFieldBuilder()
                .addBuilder(
                    com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
                        .getDefaultInstance());
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute.Builder
              addCustomAttributesBuilder(int index) {
            return getCustomAttributesFieldBuilder()
                .addBuilder(
                    index,
                    com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
                        .getDefaultInstance());
          }

          public java.util.List<
                  com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
                      .Builder>
              getCustomAttributesBuilderList() {
            return getCustomAttributesFieldBuilder().getBuilderList();
          }

          private com.google.protobuf.RepeatedFieldBuilder<
                  com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute,
                  com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
                      .Builder,
                  com.google.firebase.crashlytics.device.session.Crashlytics
                      .CustomAttributeOrBuilder>
              getCustomAttributesFieldBuilder() {
            if (customAttributesBuilder_ == null) {
              customAttributesBuilder_ =
                  new com.google.protobuf.RepeatedFieldBuilder<
                      com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute,
                      com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
                          .Builder,
                      com.google.firebase.crashlytics.device.session.Crashlytics
                          .CustomAttributeOrBuilder>(
                      customAttributes_,
                      ((bitField0_ & 0x00000002) == 0x00000002),
                      getParentForChildren(),
                      isClean());
              customAttributes_ = null;
            }
            return customAttributesBuilder_;
          }

          // optional bool background = 3;
          private boolean background_;

          public boolean hasBackground() {
            return ((bitField0_ & 0x00000004) == 0x00000004);
          }

          public boolean getBackground() {
            return background_;
          }

          public Builder setBackground(boolean value) {
            bitField0_ |= 0x00000004;
            background_ = value;
            onChanged();
            return this;
          }

          public Builder clearBackground() {
            bitField0_ = (bitField0_ & ~0x00000004);
            background_ = false;
            onChanged();
            return this;
          }

          // optional uint32 ui_orientation = 4;
          private int uiOrientation_;

          public boolean hasUiOrientation() {
            return ((bitField0_ & 0x00000008) == 0x00000008);
          }

          public int getUiOrientation() {
            return uiOrientation_;
          }

          public Builder setUiOrientation(int value) {
            bitField0_ |= 0x00000008;
            uiOrientation_ = value;
            onChanged();
            return this;
          }

          public Builder clearUiOrientation() {
            bitField0_ = (bitField0_ & ~0x00000008);
            uiOrientation_ = 0;
            onChanged();
            return this;
          }

          // @@protoc_insertion_point(builder_scope:Crashlytics.Session.Event.Application)
        }

        static {
          defaultInstance = new Application(true);
          defaultInstance.initFields();
        }

        // @@protoc_insertion_point(class_scope:Crashlytics.Session.Event.Application)
      }

      public interface OperatingSystemOrBuilder extends com.google.protobuf.MessageOrBuilder {

        // repeated .Crashlytics.Session.Event.OperatingSystem.NetworkInterface network_interfaces =
        // 1;
        java.util.List<
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem.NetworkInterface>
            getNetworkInterfacesList();

        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.OperatingSystem
                .NetworkInterface
            getNetworkInterfaces(int index);

        int getNetworkInterfacesCount();

        java.util.List<
                ? extends
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.NetworkInterfaceOrBuilder>
            getNetworkInterfacesOrBuilderList();

        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.OperatingSystem
                .NetworkInterfaceOrBuilder
            getNetworkInterfacesOrBuilder(int index);

        // repeated .Crashlytics.Session.Application.Process processes = 2;
        java.util.List<
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .Process>
            getProcessesList();

        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application.Process
            getProcesses(int index);

        int getProcessesCount();

        java.util.List<
                ? extends
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                        .ProcessOrBuilder>
            getProcessesOrBuilderList();

        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .ProcessOrBuilder
            getProcessesOrBuilder(int index);
      }

      public static final class OperatingSystem extends com.google.protobuf.GeneratedMessage
          implements OperatingSystemOrBuilder {
        // Use OperatingSystem.newBuilder() to construct.
        private OperatingSystem(Builder builder) {
          super(builder);
        }

        private OperatingSystem(boolean noInit) {}

        private static final OperatingSystem defaultInstance;

        public static OperatingSystem getDefaultInstance() {
          return defaultInstance;
        }

        public OperatingSystem getDefaultInstanceForType() {
          return defaultInstance;
        }

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
          return com.google.firebase.crashlytics.device.session.Crashlytics
              .internal_static_Crashlytics_Session_Event_OperatingSystem_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.firebase.crashlytics.device.session.Crashlytics
              .internal_static_Crashlytics_Session_Event_OperatingSystem_fieldAccessorTable;
        }

        public interface NetworkInterfaceOrBuilder extends com.google.protobuf.MessageOrBuilder {

          // optional string name = 1;
          boolean hasName();

          String getName();

          // optional string description = 2;
          boolean hasDescription();

          String getDescription();

          // optional string type = 3;
          boolean hasType();

          String getType();

          // optional bytes address = 4;
          boolean hasAddress();

          com.google.protobuf.ByteString getAddress();

          // repeated .Crashlytics.Session.Event.OperatingSystem.NetworkInterface.Connection
          // connections = 5;
          java.util.List<
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .OperatingSystem.NetworkInterface.Connection>
              getConnectionsList();

          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.OperatingSystem
                  .NetworkInterface.Connection
              getConnections(int index);

          int getConnectionsCount();

          java.util.List<
                  ? extends
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .OperatingSystem.NetworkInterface.ConnectionOrBuilder>
              getConnectionsOrBuilderList();

          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.OperatingSystem
                  .NetworkInterface.ConnectionOrBuilder
              getConnectionsOrBuilder(int index);
        }

        public static final class NetworkInterface extends com.google.protobuf.GeneratedMessage
            implements NetworkInterfaceOrBuilder {
          // Use NetworkInterface.newBuilder() to construct.
          private NetworkInterface(Builder builder) {
            super(builder);
          }

          private NetworkInterface(boolean noInit) {}

          private static final NetworkInterface defaultInstance;

          public static NetworkInterface getDefaultInstance() {
            return defaultInstance;
          }

          public NetworkInterface getDefaultInstanceForType() {
            return defaultInstance;
          }

          public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return com.google.firebase.crashlytics.device.session.Crashlytics
                .internal_static_Crashlytics_Session_Event_OperatingSystem_NetworkInterface_descriptor;
          }

          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return com.google.firebase.crashlytics.device.session.Crashlytics
                .internal_static_Crashlytics_Session_Event_OperatingSystem_NetworkInterface_fieldAccessorTable;
          }

          public interface ConnectionOrBuilder extends com.google.protobuf.MessageOrBuilder {

            // optional uint32 port = 1;
            boolean hasPort();

            int getPort();

            // optional uint64 bytes_sent = 2;
            boolean hasBytesSent();

            long getBytesSent();

            // optional uint64 bytes_received = 3;
            boolean hasBytesReceived();

            long getBytesReceived();

            // optional uint64 opened_at = 4;
            boolean hasOpenedAt();

            long getOpenedAt();

            // optional uint64 closed_at = 5;
            boolean hasClosedAt();

            long getClosedAt();

            // optional uint32 status = 6;
            boolean hasStatus();

            int getStatus();
          }

          public static final class Connection extends com.google.protobuf.GeneratedMessage
              implements ConnectionOrBuilder {
            // Use Connection.newBuilder() to construct.
            private Connection(Builder builder) {
              super(builder);
            }

            private Connection(boolean noInit) {}

            private static final Connection defaultInstance;

            public static Connection getDefaultInstance() {
              return defaultInstance;
            }

            public Connection getDefaultInstanceForType() {
              return defaultInstance;
            }

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
              return com.google.firebase.crashlytics.device.session.Crashlytics
                  .internal_static_Crashlytics_Session_Event_OperatingSystem_NetworkInterface_Connection_descriptor;
            }

            protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
                internalGetFieldAccessorTable() {
              return com.google.firebase.crashlytics.device.session.Crashlytics
                  .internal_static_Crashlytics_Session_Event_OperatingSystem_NetworkInterface_Connection_fieldAccessorTable;
            }

            private int bitField0_;
            // optional uint32 port = 1;
            public static final int PORT_FIELD_NUMBER = 1;
            private int port_;

            public boolean hasPort() {
              return ((bitField0_ & 0x00000001) == 0x00000001);
            }

            public int getPort() {
              return port_;
            }

            // optional uint64 bytes_sent = 2;
            public static final int BYTES_SENT_FIELD_NUMBER = 2;
            private long bytesSent_;

            public boolean hasBytesSent() {
              return ((bitField0_ & 0x00000002) == 0x00000002);
            }

            public long getBytesSent() {
              return bytesSent_;
            }

            // optional uint64 bytes_received = 3;
            public static final int BYTES_RECEIVED_FIELD_NUMBER = 3;
            private long bytesReceived_;

            public boolean hasBytesReceived() {
              return ((bitField0_ & 0x00000004) == 0x00000004);
            }

            public long getBytesReceived() {
              return bytesReceived_;
            }

            // optional uint64 opened_at = 4;
            public static final int OPENED_AT_FIELD_NUMBER = 4;
            private long openedAt_;

            public boolean hasOpenedAt() {
              return ((bitField0_ & 0x00000008) == 0x00000008);
            }

            public long getOpenedAt() {
              return openedAt_;
            }

            // optional uint64 closed_at = 5;
            public static final int CLOSED_AT_FIELD_NUMBER = 5;
            private long closedAt_;

            public boolean hasClosedAt() {
              return ((bitField0_ & 0x00000010) == 0x00000010);
            }

            public long getClosedAt() {
              return closedAt_;
            }

            // optional uint32 status = 6;
            public static final int STATUS_FIELD_NUMBER = 6;
            private int status_;

            public boolean hasStatus() {
              return ((bitField0_ & 0x00000020) == 0x00000020);
            }

            public int getStatus() {
              return status_;
            }

            private void initFields() {
              port_ = 0;
              bytesSent_ = 0L;
              bytesReceived_ = 0L;
              openedAt_ = 0L;
              closedAt_ = 0L;
              status_ = 0;
            }

            private byte memoizedIsInitialized = -1;

            public final boolean isInitialized() {
              byte isInitialized = memoizedIsInitialized;
              if (isInitialized != -1) return isInitialized == 1;

              memoizedIsInitialized = 1;
              return true;
            }

            public void writeTo(com.google.protobuf.CodedOutputStream output)
                throws java.io.IOException {
              getSerializedSize();
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                output.writeUInt32(1, port_);
              }
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                output.writeUInt64(2, bytesSent_);
              }
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                output.writeUInt64(3, bytesReceived_);
              }
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                output.writeUInt64(4, openedAt_);
              }
              if (((bitField0_ & 0x00000010) == 0x00000010)) {
                output.writeUInt64(5, closedAt_);
              }
              if (((bitField0_ & 0x00000020) == 0x00000020)) {
                output.writeUInt32(6, status_);
              }
              getUnknownFields().writeTo(output);
            }

            private int memoizedSerializedSize = -1;

            public int getSerializedSize() {
              int size = memoizedSerializedSize;
              if (size != -1) return size;

              size = 0;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                size += com.google.protobuf.CodedOutputStream.computeUInt32Size(1, port_);
              }
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                size += com.google.protobuf.CodedOutputStream.computeUInt64Size(2, bytesSent_);
              }
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                size += com.google.protobuf.CodedOutputStream.computeUInt64Size(3, bytesReceived_);
              }
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                size += com.google.protobuf.CodedOutputStream.computeUInt64Size(4, openedAt_);
              }
              if (((bitField0_ & 0x00000010) == 0x00000010)) {
                size += com.google.protobuf.CodedOutputStream.computeUInt64Size(5, closedAt_);
              }
              if (((bitField0_ & 0x00000020) == 0x00000020)) {
                size += com.google.protobuf.CodedOutputStream.computeUInt32Size(6, status_);
              }
              size += getUnknownFields().getSerializedSize();
              memoizedSerializedSize = size;
              return size;
            }

            private static final long serialVersionUID = 0L;

            @java.lang.Override
            protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
              return super.writeReplace();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem.NetworkInterface.Connection
                parseFrom(com.google.protobuf.ByteString data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
              return newBuilder().mergeFrom(data).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem.NetworkInterface.Connection
                parseFrom(
                    com.google.protobuf.ByteString data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
              return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem.NetworkInterface.Connection
                parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
              return newBuilder().mergeFrom(data).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem.NetworkInterface.Connection
                parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
              return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem.NetworkInterface.Connection
                parseFrom(java.io.InputStream input) throws java.io.IOException {
              return newBuilder().mergeFrom(input).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem.NetworkInterface.Connection
                parseFrom(
                    java.io.InputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
              return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem.NetworkInterface.Connection
                parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
              Builder builder = newBuilder();
              if (builder.mergeDelimitedFrom(input)) {
                return builder.buildParsed();
              } else {
                return null;
              }
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem.NetworkInterface.Connection
                parseDelimitedFrom(
                    java.io.InputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
              Builder builder = newBuilder();
              if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
                return builder.buildParsed();
              } else {
                return null;
              }
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem.NetworkInterface.Connection
                parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
              return newBuilder().mergeFrom(input).buildParsed();
            }

            public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem.NetworkInterface.Connection
                parseFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
              return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
            }

            public static Builder newBuilder() {
              return Builder.create();
            }

            public Builder newBuilderForType() {
              return newBuilder();
            }

            public static Builder newBuilder(
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.NetworkInterface.Connection
                    prototype) {
              return newBuilder().mergeFrom(prototype);
            }

            public Builder toBuilder() {
              return newBuilder(this);
            }

            @java.lang.Override
            protected Builder newBuilderForType(
                com.google.protobuf.GeneratedMessage.BuilderParent parent) {
              Builder builder = new Builder(parent);
              return builder;
            }

            public static final class Builder
                extends com.google.protobuf.GeneratedMessage.Builder<Builder>
                implements com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem.NetworkInterface.ConnectionOrBuilder {
              public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return com.google.firebase.crashlytics.device.session.Crashlytics
                    .internal_static_Crashlytics_Session_Event_OperatingSystem_NetworkInterface_Connection_descriptor;
              }

              protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
                  internalGetFieldAccessorTable() {
                return com.google.firebase.crashlytics.device.session.Crashlytics
                    .internal_static_Crashlytics_Session_Event_OperatingSystem_NetworkInterface_Connection_fieldAccessorTable;
              }

              // Construct using
              // com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.OperatingSystem.NetworkInterface.Connection.newBuilder()
              private Builder() {
                maybeForceBuilderInitialization();
              }

              private Builder(BuilderParent parent) {
                super(parent);
                maybeForceBuilderInitialization();
              }

              private void maybeForceBuilderInitialization() {
                if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {}
              }

              private static Builder create() {
                return new Builder();
              }

              public Builder clear() {
                super.clear();
                port_ = 0;
                bitField0_ = (bitField0_ & ~0x00000001);
                bytesSent_ = 0L;
                bitField0_ = (bitField0_ & ~0x00000002);
                bytesReceived_ = 0L;
                bitField0_ = (bitField0_ & ~0x00000004);
                openedAt_ = 0L;
                bitField0_ = (bitField0_ & ~0x00000008);
                closedAt_ = 0L;
                bitField0_ = (bitField0_ & ~0x00000010);
                status_ = 0;
                bitField0_ = (bitField0_ & ~0x00000020);
                return this;
              }

              public Builder clone() {
                return create().mergeFrom(buildPartial());
              }

              public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem.NetworkInterface.Connection.getDescriptor();
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .OperatingSystem.NetworkInterface.Connection
                  getDefaultInstanceForType() {
                return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem.NetworkInterface.Connection.getDefaultInstance();
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .OperatingSystem.NetworkInterface.Connection
                  build() {
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.NetworkInterface.Connection
                    result = buildPartial();
                if (!result.isInitialized()) {
                  throw newUninitializedMessageException(result);
                }
                return result;
              }

              private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .OperatingSystem.NetworkInterface.Connection
                  buildParsed() throws com.google.protobuf.InvalidProtocolBufferException {
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.NetworkInterface.Connection
                    result = buildPartial();
                if (!result.isInitialized()) {
                  throw newUninitializedMessageException(result).asInvalidProtocolBufferException();
                }
                return result;
              }

              public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .OperatingSystem.NetworkInterface.Connection
                  buildPartial() {
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.NetworkInterface.Connection
                    result =
                        new com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .OperatingSystem.NetworkInterface.Connection(this);
                int from_bitField0_ = bitField0_;
                int to_bitField0_ = 0;
                if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
                  to_bitField0_ |= 0x00000001;
                }
                result.port_ = port_;
                if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
                  to_bitField0_ |= 0x00000002;
                }
                result.bytesSent_ = bytesSent_;
                if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
                  to_bitField0_ |= 0x00000004;
                }
                result.bytesReceived_ = bytesReceived_;
                if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
                  to_bitField0_ |= 0x00000008;
                }
                result.openedAt_ = openedAt_;
                if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
                  to_bitField0_ |= 0x00000010;
                }
                result.closedAt_ = closedAt_;
                if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
                  to_bitField0_ |= 0x00000020;
                }
                result.status_ = status_;
                result.bitField0_ = to_bitField0_;
                onBuilt();
                return result;
              }

              public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other
                    instanceof
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.NetworkInterface.Connection) {
                  return mergeFrom(
                      (com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .OperatingSystem.NetworkInterface.Connection)
                          other);
                } else {
                  super.mergeFrom(other);
                  return this;
                }
              }

              public Builder mergeFrom(
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .OperatingSystem.NetworkInterface.Connection
                      other) {
                if (other
                    == com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.NetworkInterface.Connection.getDefaultInstance())
                  return this;
                if (other.hasPort()) {
                  setPort(other.getPort());
                }
                if (other.hasBytesSent()) {
                  setBytesSent(other.getBytesSent());
                }
                if (other.hasBytesReceived()) {
                  setBytesReceived(other.getBytesReceived());
                }
                if (other.hasOpenedAt()) {
                  setOpenedAt(other.getOpenedAt());
                }
                if (other.hasClosedAt()) {
                  setClosedAt(other.getClosedAt());
                }
                if (other.hasStatus()) {
                  setStatus(other.getStatus());
                }
                this.mergeUnknownFields(other.getUnknownFields());
                return this;
              }

              public final boolean isInitialized() {
                return true;
              }

              public Builder mergeFrom(
                  com.google.protobuf.CodedInputStream input,
                  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                  throws java.io.IOException {
                com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                    com.google.protobuf.UnknownFieldSet.newBuilder(this.getUnknownFields());
                while (true) {
                  int tag = input.readTag();
                  switch (tag) {
                    case 0:
                      this.setUnknownFields(unknownFields.build());
                      onChanged();
                      return this;
                    default:
                      {
                        if (!parseUnknownField(
                            input, unknownFields,
                            extensionRegistry, tag)) {
                          this.setUnknownFields(unknownFields.build());
                          onChanged();
                          return this;
                        }
                        break;
                      }
                    case 8:
                      {
                        bitField0_ |= 0x00000001;
                        port_ = input.readUInt32();
                        break;
                      }
                    case 16:
                      {
                        bitField0_ |= 0x00000002;
                        bytesSent_ = input.readUInt64();
                        break;
                      }
                    case 24:
                      {
                        bitField0_ |= 0x00000004;
                        bytesReceived_ = input.readUInt64();
                        break;
                      }
                    case 32:
                      {
                        bitField0_ |= 0x00000008;
                        openedAt_ = input.readUInt64();
                        break;
                      }
                    case 40:
                      {
                        bitField0_ |= 0x00000010;
                        closedAt_ = input.readUInt64();
                        break;
                      }
                    case 48:
                      {
                        bitField0_ |= 0x00000020;
                        status_ = input.readUInt32();
                        break;
                      }
                  }
                }
              }

              private int bitField0_;

              // optional uint32 port = 1;
              private int port_;

              public boolean hasPort() {
                return ((bitField0_ & 0x00000001) == 0x00000001);
              }

              public int getPort() {
                return port_;
              }

              public Builder setPort(int value) {
                bitField0_ |= 0x00000001;
                port_ = value;
                onChanged();
                return this;
              }

              public Builder clearPort() {
                bitField0_ = (bitField0_ & ~0x00000001);
                port_ = 0;
                onChanged();
                return this;
              }

              // optional uint64 bytes_sent = 2;
              private long bytesSent_;

              public boolean hasBytesSent() {
                return ((bitField0_ & 0x00000002) == 0x00000002);
              }

              public long getBytesSent() {
                return bytesSent_;
              }

              public Builder setBytesSent(long value) {
                bitField0_ |= 0x00000002;
                bytesSent_ = value;
                onChanged();
                return this;
              }

              public Builder clearBytesSent() {
                bitField0_ = (bitField0_ & ~0x00000002);
                bytesSent_ = 0L;
                onChanged();
                return this;
              }

              // optional uint64 bytes_received = 3;
              private long bytesReceived_;

              public boolean hasBytesReceived() {
                return ((bitField0_ & 0x00000004) == 0x00000004);
              }

              public long getBytesReceived() {
                return bytesReceived_;
              }

              public Builder setBytesReceived(long value) {
                bitField0_ |= 0x00000004;
                bytesReceived_ = value;
                onChanged();
                return this;
              }

              public Builder clearBytesReceived() {
                bitField0_ = (bitField0_ & ~0x00000004);
                bytesReceived_ = 0L;
                onChanged();
                return this;
              }

              // optional uint64 opened_at = 4;
              private long openedAt_;

              public boolean hasOpenedAt() {
                return ((bitField0_ & 0x00000008) == 0x00000008);
              }

              public long getOpenedAt() {
                return openedAt_;
              }

              public Builder setOpenedAt(long value) {
                bitField0_ |= 0x00000008;
                openedAt_ = value;
                onChanged();
                return this;
              }

              public Builder clearOpenedAt() {
                bitField0_ = (bitField0_ & ~0x00000008);
                openedAt_ = 0L;
                onChanged();
                return this;
              }

              // optional uint64 closed_at = 5;
              private long closedAt_;

              public boolean hasClosedAt() {
                return ((bitField0_ & 0x00000010) == 0x00000010);
              }

              public long getClosedAt() {
                return closedAt_;
              }

              public Builder setClosedAt(long value) {
                bitField0_ |= 0x00000010;
                closedAt_ = value;
                onChanged();
                return this;
              }

              public Builder clearClosedAt() {
                bitField0_ = (bitField0_ & ~0x00000010);
                closedAt_ = 0L;
                onChanged();
                return this;
              }

              // optional uint32 status = 6;
              private int status_;

              public boolean hasStatus() {
                return ((bitField0_ & 0x00000020) == 0x00000020);
              }

              public int getStatus() {
                return status_;
              }

              public Builder setStatus(int value) {
                bitField0_ |= 0x00000020;
                status_ = value;
                onChanged();
                return this;
              }

              public Builder clearStatus() {
                bitField0_ = (bitField0_ & ~0x00000020);
                status_ = 0;
                onChanged();
                return this;
              }

              // @@protoc_insertion_point(builder_scope:Crashlytics.Session.Event.OperatingSystem.NetworkInterface.Connection)
            }

            static {
              defaultInstance = new Connection(true);
              defaultInstance.initFields();
            }

            // @@protoc_insertion_point(class_scope:Crashlytics.Session.Event.OperatingSystem.NetworkInterface.Connection)
          }

          private int bitField0_;
          // optional string name = 1;
          public static final int NAME_FIELD_NUMBER = 1;
          private java.lang.Object name_;

          public boolean hasName() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }

          public String getName() {
            java.lang.Object ref = name_;
            if (ref instanceof String) {
              return (String) ref;
            } else {
              com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
              String s = bs.toStringUtf8();
              if (com.google.protobuf.Internal.isValidUtf8(bs)) {
                name_ = s;
              }
              return s;
            }
          }

          private com.google.protobuf.ByteString getNameBytes() {
            java.lang.Object ref = name_;
            if (ref instanceof String) {
              com.google.protobuf.ByteString b =
                  com.google.protobuf.ByteString.copyFromUtf8((String) ref);
              name_ = b;
              return b;
            } else {
              return (com.google.protobuf.ByteString) ref;
            }
          }

          // optional string description = 2;
          public static final int DESCRIPTION_FIELD_NUMBER = 2;
          private java.lang.Object description_;

          public boolean hasDescription() {
            return ((bitField0_ & 0x00000002) == 0x00000002);
          }

          public String getDescription() {
            java.lang.Object ref = description_;
            if (ref instanceof String) {
              return (String) ref;
            } else {
              com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
              String s = bs.toStringUtf8();
              if (com.google.protobuf.Internal.isValidUtf8(bs)) {
                description_ = s;
              }
              return s;
            }
          }

          private com.google.protobuf.ByteString getDescriptionBytes() {
            java.lang.Object ref = description_;
            if (ref instanceof String) {
              com.google.protobuf.ByteString b =
                  com.google.protobuf.ByteString.copyFromUtf8((String) ref);
              description_ = b;
              return b;
            } else {
              return (com.google.protobuf.ByteString) ref;
            }
          }

          // optional string type = 3;
          public static final int TYPE_FIELD_NUMBER = 3;
          private java.lang.Object type_;

          public boolean hasType() {
            return ((bitField0_ & 0x00000004) == 0x00000004);
          }

          public String getType() {
            java.lang.Object ref = type_;
            if (ref instanceof String) {
              return (String) ref;
            } else {
              com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
              String s = bs.toStringUtf8();
              if (com.google.protobuf.Internal.isValidUtf8(bs)) {
                type_ = s;
              }
              return s;
            }
          }

          private com.google.protobuf.ByteString getTypeBytes() {
            java.lang.Object ref = type_;
            if (ref instanceof String) {
              com.google.protobuf.ByteString b =
                  com.google.protobuf.ByteString.copyFromUtf8((String) ref);
              type_ = b;
              return b;
            } else {
              return (com.google.protobuf.ByteString) ref;
            }
          }

          // optional bytes address = 4;
          public static final int ADDRESS_FIELD_NUMBER = 4;
          private com.google.protobuf.ByteString address_;

          public boolean hasAddress() {
            return ((bitField0_ & 0x00000008) == 0x00000008);
          }

          public com.google.protobuf.ByteString getAddress() {
            return address_;
          }

          // repeated .Crashlytics.Session.Event.OperatingSystem.NetworkInterface.Connection
          // connections = 5;
          public static final int CONNECTIONS_FIELD_NUMBER = 5;
          private java.util.List<
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .OperatingSystem.NetworkInterface.Connection>
              connections_;

          public java.util.List<
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .OperatingSystem.NetworkInterface.Connection>
              getConnectionsList() {
            return connections_;
          }

          public java.util.List<
                  ? extends
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .OperatingSystem.NetworkInterface.ConnectionOrBuilder>
              getConnectionsOrBuilderList() {
            return connections_;
          }

          public int getConnectionsCount() {
            return connections_.size();
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .OperatingSystem.NetworkInterface.Connection
              getConnections(int index) {
            return connections_.get(index);
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .OperatingSystem.NetworkInterface.ConnectionOrBuilder
              getConnectionsOrBuilder(int index) {
            return connections_.get(index);
          }

          private void initFields() {
            name_ = "";
            description_ = "";
            type_ = "";
            address_ = com.google.protobuf.ByteString.EMPTY;
            connections_ = java.util.Collections.emptyList();
          }

          private byte memoizedIsInitialized = -1;

          public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized != -1) return isInitialized == 1;

            memoizedIsInitialized = 1;
            return true;
          }

          public void writeTo(com.google.protobuf.CodedOutputStream output)
              throws java.io.IOException {
            getSerializedSize();
            if (((bitField0_ & 0x00000001) == 0x00000001)) {
              output.writeBytes(1, getNameBytes());
            }
            if (((bitField0_ & 0x00000002) == 0x00000002)) {
              output.writeBytes(2, getDescriptionBytes());
            }
            if (((bitField0_ & 0x00000004) == 0x00000004)) {
              output.writeBytes(3, getTypeBytes());
            }
            if (((bitField0_ & 0x00000008) == 0x00000008)) {
              output.writeBytes(4, address_);
            }
            for (int i = 0; i < connections_.size(); i++) {
              output.writeMessage(5, connections_.get(i));
            }
            getUnknownFields().writeTo(output);
          }

          private int memoizedSerializedSize = -1;

          public int getSerializedSize() {
            int size = memoizedSerializedSize;
            if (size != -1) return size;

            size = 0;
            if (((bitField0_ & 0x00000001) == 0x00000001)) {
              size += com.google.protobuf.CodedOutputStream.computeBytesSize(1, getNameBytes());
            }
            if (((bitField0_ & 0x00000002) == 0x00000002)) {
              size +=
                  com.google.protobuf.CodedOutputStream.computeBytesSize(2, getDescriptionBytes());
            }
            if (((bitField0_ & 0x00000004) == 0x00000004)) {
              size += com.google.protobuf.CodedOutputStream.computeBytesSize(3, getTypeBytes());
            }
            if (((bitField0_ & 0x00000008) == 0x00000008)) {
              size += com.google.protobuf.CodedOutputStream.computeBytesSize(4, address_);
            }
            for (int i = 0; i < connections_.size(); i++) {
              size +=
                  com.google.protobuf.CodedOutputStream.computeMessageSize(5, connections_.get(i));
            }
            size += getUnknownFields().getSerializedSize();
            memoizedSerializedSize = size;
            return size;
          }

          private static final long serialVersionUID = 0L;

          @java.lang.Override
          protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
            return super.writeReplace();
          }

          public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .OperatingSystem.NetworkInterface
              parseFrom(com.google.protobuf.ByteString data)
                  throws com.google.protobuf.InvalidProtocolBufferException {
            return newBuilder().mergeFrom(data).buildParsed();
          }

          public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .OperatingSystem.NetworkInterface
              parseFrom(
                  com.google.protobuf.ByteString data,
                  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                  throws com.google.protobuf.InvalidProtocolBufferException {
            return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
          }

          public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .OperatingSystem.NetworkInterface
              parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return newBuilder().mergeFrom(data).buildParsed();
          }

          public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .OperatingSystem.NetworkInterface
              parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                  throws com.google.protobuf.InvalidProtocolBufferException {
            return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
          }

          public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .OperatingSystem.NetworkInterface
              parseFrom(java.io.InputStream input) throws java.io.IOException {
            return newBuilder().mergeFrom(input).buildParsed();
          }

          public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .OperatingSystem.NetworkInterface
              parseFrom(
                  java.io.InputStream input,
                  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                  throws java.io.IOException {
            return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
          }

          public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .OperatingSystem.NetworkInterface
              parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            Builder builder = newBuilder();
            if (builder.mergeDelimitedFrom(input)) {
              return builder.buildParsed();
            } else {
              return null;
            }
          }

          public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .OperatingSystem.NetworkInterface
              parseDelimitedFrom(
                  java.io.InputStream input,
                  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                  throws java.io.IOException {
            Builder builder = newBuilder();
            if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
              return builder.buildParsed();
            } else {
              return null;
            }
          }

          public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .OperatingSystem.NetworkInterface
              parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return newBuilder().mergeFrom(input).buildParsed();
          }

          public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .OperatingSystem.NetworkInterface
              parseFrom(
                  com.google.protobuf.CodedInputStream input,
                  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                  throws java.io.IOException {
            return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
          }

          public static Builder newBuilder() {
            return Builder.create();
          }

          public Builder newBuilderForType() {
            return newBuilder();
          }

          public static Builder newBuilder(
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .OperatingSystem.NetworkInterface
                  prototype) {
            return newBuilder().mergeFrom(prototype);
          }

          public Builder toBuilder() {
            return newBuilder(this);
          }

          @java.lang.Override
          protected Builder newBuilderForType(
              com.google.protobuf.GeneratedMessage.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
          }

          public static final class Builder
              extends com.google.protobuf.GeneratedMessage.Builder<Builder>
              implements com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .OperatingSystem.NetworkInterfaceOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
              return com.google.firebase.crashlytics.device.session.Crashlytics
                  .internal_static_Crashlytics_Session_Event_OperatingSystem_NetworkInterface_descriptor;
            }

            protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
                internalGetFieldAccessorTable() {
              return com.google.firebase.crashlytics.device.session.Crashlytics
                  .internal_static_Crashlytics_Session_Event_OperatingSystem_NetworkInterface_fieldAccessorTable;
            }

            // Construct using
            // com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.OperatingSystem.NetworkInterface.newBuilder()
            private Builder() {
              maybeForceBuilderInitialization();
            }

            private Builder(BuilderParent parent) {
              super(parent);
              maybeForceBuilderInitialization();
            }

            private void maybeForceBuilderInitialization() {
              if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
                getConnectionsFieldBuilder();
              }
            }

            private static Builder create() {
              return new Builder();
            }

            public Builder clear() {
              super.clear();
              name_ = "";
              bitField0_ = (bitField0_ & ~0x00000001);
              description_ = "";
              bitField0_ = (bitField0_ & ~0x00000002);
              type_ = "";
              bitField0_ = (bitField0_ & ~0x00000004);
              address_ = com.google.protobuf.ByteString.EMPTY;
              bitField0_ = (bitField0_ & ~0x00000008);
              if (connectionsBuilder_ == null) {
                connections_ = java.util.Collections.emptyList();
                bitField0_ = (bitField0_ & ~0x00000010);
              } else {
                connectionsBuilder_.clear();
              }
              return this;
            }

            public Builder clone() {
              return create().mergeFrom(buildPartial());
            }

            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
              return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .OperatingSystem.NetworkInterface.getDescriptor();
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem.NetworkInterface
                getDefaultInstanceForType() {
              return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .OperatingSystem.NetworkInterface.getDefaultInstance();
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem.NetworkInterface
                build() {
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .OperatingSystem.NetworkInterface
                  result = buildPartial();
              if (!result.isInitialized()) {
                throw newUninitializedMessageException(result);
              }
              return result;
            }

            private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem.NetworkInterface
                buildParsed() throws com.google.protobuf.InvalidProtocolBufferException {
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .OperatingSystem.NetworkInterface
                  result = buildPartial();
              if (!result.isInitialized()) {
                throw newUninitializedMessageException(result).asInvalidProtocolBufferException();
              }
              return result;
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem.NetworkInterface
                buildPartial() {
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .OperatingSystem.NetworkInterface
                  result =
                      new com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .OperatingSystem.NetworkInterface(this);
              int from_bitField0_ = bitField0_;
              int to_bitField0_ = 0;
              if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
                to_bitField0_ |= 0x00000001;
              }
              result.name_ = name_;
              if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
                to_bitField0_ |= 0x00000002;
              }
              result.description_ = description_;
              if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
                to_bitField0_ |= 0x00000004;
              }
              result.type_ = type_;
              if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
                to_bitField0_ |= 0x00000008;
              }
              result.address_ = address_;
              if (connectionsBuilder_ == null) {
                if (((bitField0_ & 0x00000010) == 0x00000010)) {
                  connections_ = java.util.Collections.unmodifiableList(connections_);
                  bitField0_ = (bitField0_ & ~0x00000010);
                }
                result.connections_ = connections_;
              } else {
                result.connections_ = connectionsBuilder_.build();
              }
              result.bitField0_ = to_bitField0_;
              onBuilt();
              return result;
            }

            public Builder mergeFrom(com.google.protobuf.Message other) {
              if (other
                  instanceof
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .OperatingSystem.NetworkInterface) {
                return mergeFrom(
                    (com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .OperatingSystem.NetworkInterface)
                        other);
              } else {
                super.mergeFrom(other);
                return this;
              }
            }

            public Builder mergeFrom(
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.NetworkInterface
                    other) {
              if (other
                  == com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .OperatingSystem.NetworkInterface.getDefaultInstance()) return this;
              if (other.hasName()) {
                setName(other.getName());
              }
              if (other.hasDescription()) {
                setDescription(other.getDescription());
              }
              if (other.hasType()) {
                setType(other.getType());
              }
              if (other.hasAddress()) {
                setAddress(other.getAddress());
              }
              if (connectionsBuilder_ == null) {
                if (!other.connections_.isEmpty()) {
                  if (connections_.isEmpty()) {
                    connections_ = other.connections_;
                    bitField0_ = (bitField0_ & ~0x00000010);
                  } else {
                    ensureConnectionsIsMutable();
                    connections_.addAll(other.connections_);
                  }
                  onChanged();
                }
              } else {
                if (!other.connections_.isEmpty()) {
                  if (connectionsBuilder_.isEmpty()) {
                    connectionsBuilder_.dispose();
                    connectionsBuilder_ = null;
                    connections_ = other.connections_;
                    bitField0_ = (bitField0_ & ~0x00000010);
                    connectionsBuilder_ =
                        com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders
                            ? getConnectionsFieldBuilder()
                            : null;
                  } else {
                    connectionsBuilder_.addAllMessages(other.connections_);
                  }
                }
              }
              this.mergeUnknownFields(other.getUnknownFields());
              return this;
            }

            public final boolean isInitialized() {
              return true;
            }

            public Builder mergeFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
              com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                  com.google.protobuf.UnknownFieldSet.newBuilder(this.getUnknownFields());
              while (true) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    this.setUnknownFields(unknownFields.build());
                    onChanged();
                    return this;
                  default:
                    {
                      if (!parseUnknownField(
                          input, unknownFields,
                          extensionRegistry, tag)) {
                        this.setUnknownFields(unknownFields.build());
                        onChanged();
                        return this;
                      }
                      break;
                    }
                  case 10:
                    {
                      bitField0_ |= 0x00000001;
                      name_ = input.readBytes();
                      break;
                    }
                  case 18:
                    {
                      bitField0_ |= 0x00000002;
                      description_ = input.readBytes();
                      break;
                    }
                  case 26:
                    {
                      bitField0_ |= 0x00000004;
                      type_ = input.readBytes();
                      break;
                    }
                  case 34:
                    {
                      bitField0_ |= 0x00000008;
                      address_ = input.readBytes();
                      break;
                    }
                  case 42:
                    {
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .OperatingSystem.NetworkInterface.Connection.Builder
                          subBuilder =
                              com.google.firebase.crashlytics.device.session.Crashlytics.Session
                                  .Event.OperatingSystem.NetworkInterface.Connection.newBuilder();
                      input.readMessage(subBuilder, extensionRegistry);
                      addConnections(subBuilder.buildPartial());
                      break;
                    }
                }
              }
            }

            private int bitField0_;

            // optional string name = 1;
            private java.lang.Object name_ = "";

            public boolean hasName() {
              return ((bitField0_ & 0x00000001) == 0x00000001);
            }

            public String getName() {
              java.lang.Object ref = name_;
              if (!(ref instanceof String)) {
                String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
                name_ = s;
                return s;
              } else {
                return (String) ref;
              }
            }

            public Builder setName(String value) {
              if (value == null) {
                throw new NullPointerException();
              }
              bitField0_ |= 0x00000001;
              name_ = value;
              onChanged();
              return this;
            }

            public Builder clearName() {
              bitField0_ = (bitField0_ & ~0x00000001);
              name_ = getDefaultInstance().getName();
              onChanged();
              return this;
            }

            void setName(com.google.protobuf.ByteString value) {
              bitField0_ |= 0x00000001;
              name_ = value;
              onChanged();
            }

            // optional string description = 2;
            private java.lang.Object description_ = "";

            public boolean hasDescription() {
              return ((bitField0_ & 0x00000002) == 0x00000002);
            }

            public String getDescription() {
              java.lang.Object ref = description_;
              if (!(ref instanceof String)) {
                String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
                description_ = s;
                return s;
              } else {
                return (String) ref;
              }
            }

            public Builder setDescription(String value) {
              if (value == null) {
                throw new NullPointerException();
              }
              bitField0_ |= 0x00000002;
              description_ = value;
              onChanged();
              return this;
            }

            public Builder clearDescription() {
              bitField0_ = (bitField0_ & ~0x00000002);
              description_ = getDefaultInstance().getDescription();
              onChanged();
              return this;
            }

            void setDescription(com.google.protobuf.ByteString value) {
              bitField0_ |= 0x00000002;
              description_ = value;
              onChanged();
            }

            // optional string type = 3;
            private java.lang.Object type_ = "";

            public boolean hasType() {
              return ((bitField0_ & 0x00000004) == 0x00000004);
            }

            public String getType() {
              java.lang.Object ref = type_;
              if (!(ref instanceof String)) {
                String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
                type_ = s;
                return s;
              } else {
                return (String) ref;
              }
            }

            public Builder setType(String value) {
              if (value == null) {
                throw new NullPointerException();
              }
              bitField0_ |= 0x00000004;
              type_ = value;
              onChanged();
              return this;
            }

            public Builder clearType() {
              bitField0_ = (bitField0_ & ~0x00000004);
              type_ = getDefaultInstance().getType();
              onChanged();
              return this;
            }

            void setType(com.google.protobuf.ByteString value) {
              bitField0_ |= 0x00000004;
              type_ = value;
              onChanged();
            }

            // optional bytes address = 4;
            private com.google.protobuf.ByteString address_ = com.google.protobuf.ByteString.EMPTY;

            public boolean hasAddress() {
              return ((bitField0_ & 0x00000008) == 0x00000008);
            }

            public com.google.protobuf.ByteString getAddress() {
              return address_;
            }

            public Builder setAddress(com.google.protobuf.ByteString value) {
              if (value == null) {
                throw new NullPointerException();
              }
              bitField0_ |= 0x00000008;
              address_ = value;
              onChanged();
              return this;
            }

            public Builder clearAddress() {
              bitField0_ = (bitField0_ & ~0x00000008);
              address_ = getDefaultInstance().getAddress();
              onChanged();
              return this;
            }

            // repeated .Crashlytics.Session.Event.OperatingSystem.NetworkInterface.Connection
            // connections = 5;
            private java.util.List<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.NetworkInterface.Connection>
                connections_ = java.util.Collections.emptyList();

            private void ensureConnectionsIsMutable() {
              if (!((bitField0_ & 0x00000010) == 0x00000010)) {
                connections_ =
                    new java.util.ArrayList<
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .OperatingSystem.NetworkInterface.Connection>(connections_);
                bitField0_ |= 0x00000010;
              }
            }

            private com.google.protobuf.RepeatedFieldBuilder<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.NetworkInterface.Connection,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.NetworkInterface.Connection.Builder,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.NetworkInterface.ConnectionOrBuilder>
                connectionsBuilder_;

            public java.util.List<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.NetworkInterface.Connection>
                getConnectionsList() {
              if (connectionsBuilder_ == null) {
                return java.util.Collections.unmodifiableList(connections_);
              } else {
                return connectionsBuilder_.getMessageList();
              }
            }

            public int getConnectionsCount() {
              if (connectionsBuilder_ == null) {
                return connections_.size();
              } else {
                return connectionsBuilder_.getCount();
              }
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem.NetworkInterface.Connection
                getConnections(int index) {
              if (connectionsBuilder_ == null) {
                return connections_.get(index);
              } else {
                return connectionsBuilder_.getMessage(index);
              }
            }

            public Builder setConnections(
                int index,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.NetworkInterface.Connection
                    value) {
              if (connectionsBuilder_ == null) {
                if (value == null) {
                  throw new NullPointerException();
                }
                ensureConnectionsIsMutable();
                connections_.set(index, value);
                onChanged();
              } else {
                connectionsBuilder_.setMessage(index, value);
              }
              return this;
            }

            public Builder setConnections(
                int index,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.NetworkInterface.Connection.Builder
                    builderForValue) {
              if (connectionsBuilder_ == null) {
                ensureConnectionsIsMutable();
                connections_.set(index, builderForValue.build());
                onChanged();
              } else {
                connectionsBuilder_.setMessage(index, builderForValue.build());
              }
              return this;
            }

            public Builder addConnections(
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.NetworkInterface.Connection
                    value) {
              if (connectionsBuilder_ == null) {
                if (value == null) {
                  throw new NullPointerException();
                }
                ensureConnectionsIsMutable();
                connections_.add(value);
                onChanged();
              } else {
                connectionsBuilder_.addMessage(value);
              }
              return this;
            }

            public Builder addConnections(
                int index,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.NetworkInterface.Connection
                    value) {
              if (connectionsBuilder_ == null) {
                if (value == null) {
                  throw new NullPointerException();
                }
                ensureConnectionsIsMutable();
                connections_.add(index, value);
                onChanged();
              } else {
                connectionsBuilder_.addMessage(index, value);
              }
              return this;
            }

            public Builder addConnections(
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.NetworkInterface.Connection.Builder
                    builderForValue) {
              if (connectionsBuilder_ == null) {
                ensureConnectionsIsMutable();
                connections_.add(builderForValue.build());
                onChanged();
              } else {
                connectionsBuilder_.addMessage(builderForValue.build());
              }
              return this;
            }

            public Builder addConnections(
                int index,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.NetworkInterface.Connection.Builder
                    builderForValue) {
              if (connectionsBuilder_ == null) {
                ensureConnectionsIsMutable();
                connections_.add(index, builderForValue.build());
                onChanged();
              } else {
                connectionsBuilder_.addMessage(index, builderForValue.build());
              }
              return this;
            }

            public Builder addAllConnections(
                java.lang.Iterable<
                        ? extends
                            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                                .OperatingSystem.NetworkInterface.Connection>
                    values) {
              if (connectionsBuilder_ == null) {
                ensureConnectionsIsMutable();
                super.addAll(values, connections_);
                onChanged();
              } else {
                connectionsBuilder_.addAllMessages(values);
              }
              return this;
            }

            public Builder clearConnections() {
              if (connectionsBuilder_ == null) {
                connections_ = java.util.Collections.emptyList();
                bitField0_ = (bitField0_ & ~0x00000010);
                onChanged();
              } else {
                connectionsBuilder_.clear();
              }
              return this;
            }

            public Builder removeConnections(int index) {
              if (connectionsBuilder_ == null) {
                ensureConnectionsIsMutable();
                connections_.remove(index);
                onChanged();
              } else {
                connectionsBuilder_.remove(index);
              }
              return this;
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem.NetworkInterface.Connection.Builder
                getConnectionsBuilder(int index) {
              return getConnectionsFieldBuilder().getBuilder(index);
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem.NetworkInterface.ConnectionOrBuilder
                getConnectionsOrBuilder(int index) {
              if (connectionsBuilder_ == null) {
                return connections_.get(index);
              } else {
                return connectionsBuilder_.getMessageOrBuilder(index);
              }
            }

            public java.util.List<
                    ? extends
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .OperatingSystem.NetworkInterface.ConnectionOrBuilder>
                getConnectionsOrBuilderList() {
              if (connectionsBuilder_ != null) {
                return connectionsBuilder_.getMessageOrBuilderList();
              } else {
                return java.util.Collections.unmodifiableList(connections_);
              }
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem.NetworkInterface.Connection.Builder
                addConnectionsBuilder() {
              return getConnectionsFieldBuilder()
                  .addBuilder(
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .OperatingSystem.NetworkInterface.Connection.getDefaultInstance());
            }

            public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem.NetworkInterface.Connection.Builder
                addConnectionsBuilder(int index) {
              return getConnectionsFieldBuilder()
                  .addBuilder(
                      index,
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .OperatingSystem.NetworkInterface.Connection.getDefaultInstance());
            }

            public java.util.List<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.NetworkInterface.Connection.Builder>
                getConnectionsBuilderList() {
              return getConnectionsFieldBuilder().getBuilderList();
            }

            private com.google.protobuf.RepeatedFieldBuilder<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.NetworkInterface.Connection,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.NetworkInterface.Connection.Builder,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.NetworkInterface.ConnectionOrBuilder>
                getConnectionsFieldBuilder() {
              if (connectionsBuilder_ == null) {
                connectionsBuilder_ =
                    new com.google.protobuf.RepeatedFieldBuilder<
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .OperatingSystem.NetworkInterface.Connection,
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .OperatingSystem.NetworkInterface.Connection.Builder,
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .OperatingSystem.NetworkInterface.ConnectionOrBuilder>(
                        connections_,
                        ((bitField0_ & 0x00000010) == 0x00000010),
                        getParentForChildren(),
                        isClean());
                connections_ = null;
              }
              return connectionsBuilder_;
            }

            // @@protoc_insertion_point(builder_scope:Crashlytics.Session.Event.OperatingSystem.NetworkInterface)
          }

          static {
            defaultInstance = new NetworkInterface(true);
            defaultInstance.initFields();
          }

          // @@protoc_insertion_point(class_scope:Crashlytics.Session.Event.OperatingSystem.NetworkInterface)
        }

        // repeated .Crashlytics.Session.Event.OperatingSystem.NetworkInterface network_interfaces =
        // 1;
        public static final int NETWORK_INTERFACES_FIELD_NUMBER = 1;
        private java.util.List<
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem.NetworkInterface>
            networkInterfaces_;

        public java.util.List<
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem.NetworkInterface>
            getNetworkInterfacesList() {
          return networkInterfaces_;
        }

        public java.util.List<
                ? extends
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.NetworkInterfaceOrBuilder>
            getNetworkInterfacesOrBuilderList() {
          return networkInterfaces_;
        }

        public int getNetworkInterfacesCount() {
          return networkInterfaces_.size();
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .OperatingSystem.NetworkInterface
            getNetworkInterfaces(int index) {
          return networkInterfaces_.get(index);
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .OperatingSystem.NetworkInterfaceOrBuilder
            getNetworkInterfacesOrBuilder(int index) {
          return networkInterfaces_.get(index);
        }

        // repeated .Crashlytics.Session.Application.Process processes = 2;
        public static final int PROCESSES_FIELD_NUMBER = 2;
        private java.util.List<
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .Process>
            processes_;

        public java.util.List<
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .Process>
            getProcessesList() {
          return processes_;
        }

        public java.util.List<
                ? extends
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                        .ProcessOrBuilder>
            getProcessesOrBuilderList() {
          return processes_;
        }

        public int getProcessesCount() {
          return processes_.size();
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .Process
            getProcesses(int index) {
          return processes_.get(index);
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                .ProcessOrBuilder
            getProcessesOrBuilder(int index) {
          return processes_.get(index);
        }

        private void initFields() {
          networkInterfaces_ = java.util.Collections.emptyList();
          processes_ = java.util.Collections.emptyList();
        }

        private byte memoizedIsInitialized = -1;

        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized != -1) return isInitialized == 1;

          for (int i = 0; i < getProcessesCount(); i++) {
            if (!getProcesses(i).isInitialized()) {
              memoizedIsInitialized = 0;
              return false;
            }
          }
          memoizedIsInitialized = 1;
          return true;
        }

        public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
          getSerializedSize();
          for (int i = 0; i < networkInterfaces_.size(); i++) {
            output.writeMessage(1, networkInterfaces_.get(i));
          }
          for (int i = 0; i < processes_.size(); i++) {
            output.writeMessage(2, processes_.get(i));
          }
          getUnknownFields().writeTo(output);
        }

        private int memoizedSerializedSize = -1;

        public int getSerializedSize() {
          int size = memoizedSerializedSize;
          if (size != -1) return size;

          size = 0;
          for (int i = 0; i < networkInterfaces_.size(); i++) {
            size +=
                com.google.protobuf.CodedOutputStream.computeMessageSize(
                    1, networkInterfaces_.get(i));
          }
          for (int i = 0; i < processes_.size(); i++) {
            size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, processes_.get(i));
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSerializedSize = size;
          return size;
        }

        private static final long serialVersionUID = 0L;

        @java.lang.Override
        protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
          return super.writeReplace();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .OperatingSystem
            parseFrom(com.google.protobuf.ByteString data)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .OperatingSystem
            parseFrom(
                com.google.protobuf.ByteString data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .OperatingSystem
            parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .OperatingSystem
            parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .OperatingSystem
            parseFrom(java.io.InputStream input) throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .OperatingSystem
            parseFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .OperatingSystem
            parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .OperatingSystem
            parseDelimitedFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .OperatingSystem
            parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .OperatingSystem
            parseFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
        }

        public static Builder newBuilder() {
          return Builder.create();
        }

        public Builder newBuilderForType() {
          return newBuilder();
        }

        public static Builder newBuilder(
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.OperatingSystem
                prototype) {
          return newBuilder().mergeFrom(prototype);
        }

        public Builder toBuilder() {
          return newBuilder(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }

        public static final class Builder
            extends com.google.protobuf.GeneratedMessage.Builder<Builder>
            implements com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .OperatingSystemOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return com.google.firebase.crashlytics.device.session.Crashlytics
                .internal_static_Crashlytics_Session_Event_OperatingSystem_descriptor;
          }

          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return com.google.firebase.crashlytics.device.session.Crashlytics
                .internal_static_Crashlytics_Session_Event_OperatingSystem_fieldAccessorTable;
          }

          // Construct using
          // com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.OperatingSystem.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }

          private Builder(BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }

          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
              getNetworkInterfacesFieldBuilder();
              getProcessesFieldBuilder();
            }
          }

          private static Builder create() {
            return new Builder();
          }

          public Builder clear() {
            super.clear();
            if (networkInterfacesBuilder_ == null) {
              networkInterfaces_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              networkInterfacesBuilder_.clear();
            }
            if (processesBuilder_ == null) {
              processes_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              processesBuilder_.clear();
            }
            return this;
          }

          public Builder clone() {
            return create().mergeFrom(buildPartial());
          }

          public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
            return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .OperatingSystem.getDescriptor();
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .OperatingSystem
              getDefaultInstanceForType() {
            return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .OperatingSystem.getDefaultInstance();
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .OperatingSystem
              build() {
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.OperatingSystem
                result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .OperatingSystem
              buildParsed() throws com.google.protobuf.InvalidProtocolBufferException {
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.OperatingSystem
                result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result).asInvalidProtocolBufferException();
            }
            return result;
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .OperatingSystem
              buildPartial() {
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.OperatingSystem
                result =
                    new com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem(this);
            int from_bitField0_ = bitField0_;
            if (networkInterfacesBuilder_ == null) {
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                networkInterfaces_ = java.util.Collections.unmodifiableList(networkInterfaces_);
                bitField0_ = (bitField0_ & ~0x00000001);
              }
              result.networkInterfaces_ = networkInterfaces_;
            } else {
              result.networkInterfaces_ = networkInterfacesBuilder_.build();
            }
            if (processesBuilder_ == null) {
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                processes_ = java.util.Collections.unmodifiableList(processes_);
                bitField0_ = (bitField0_ & ~0x00000002);
              }
              result.processes_ = processes_;
            } else {
              result.processes_ = processesBuilder_.build();
            }
            onBuilt();
            return result;
          }

          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other
                instanceof
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem) {
              return mergeFrom(
                  (com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .OperatingSystem)
                      other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .OperatingSystem
                  other) {
            if (other
                == com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem.getDefaultInstance()) return this;
            if (networkInterfacesBuilder_ == null) {
              if (!other.networkInterfaces_.isEmpty()) {
                if (networkInterfaces_.isEmpty()) {
                  networkInterfaces_ = other.networkInterfaces_;
                  bitField0_ = (bitField0_ & ~0x00000001);
                } else {
                  ensureNetworkInterfacesIsMutable();
                  networkInterfaces_.addAll(other.networkInterfaces_);
                }
                onChanged();
              }
            } else {
              if (!other.networkInterfaces_.isEmpty()) {
                if (networkInterfacesBuilder_.isEmpty()) {
                  networkInterfacesBuilder_.dispose();
                  networkInterfacesBuilder_ = null;
                  networkInterfaces_ = other.networkInterfaces_;
                  bitField0_ = (bitField0_ & ~0x00000001);
                  networkInterfacesBuilder_ =
                      com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders
                          ? getNetworkInterfacesFieldBuilder()
                          : null;
                } else {
                  networkInterfacesBuilder_.addAllMessages(other.networkInterfaces_);
                }
              }
            }
            if (processesBuilder_ == null) {
              if (!other.processes_.isEmpty()) {
                if (processes_.isEmpty()) {
                  processes_ = other.processes_;
                  bitField0_ = (bitField0_ & ~0x00000002);
                } else {
                  ensureProcessesIsMutable();
                  processes_.addAll(other.processes_);
                }
                onChanged();
              }
            } else {
              if (!other.processes_.isEmpty()) {
                if (processesBuilder_.isEmpty()) {
                  processesBuilder_.dispose();
                  processesBuilder_ = null;
                  processes_ = other.processes_;
                  bitField0_ = (bitField0_ & ~0x00000002);
                  processesBuilder_ =
                      com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders
                          ? getProcessesFieldBuilder()
                          : null;
                } else {
                  processesBuilder_.addAllMessages(other.processes_);
                }
              }
            }
            this.mergeUnknownFields(other.getUnknownFields());
            return this;
          }

          public final boolean isInitialized() {
            for (int i = 0; i < getProcessesCount(); i++) {
              if (!getProcesses(i).isInitialized()) {

                return false;
              }
            }
            return true;
          }

          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                com.google.protobuf.UnknownFieldSet.newBuilder(this.getUnknownFields());
            while (true) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                default:
                  {
                    if (!parseUnknownField(
                        input, unknownFields,
                        extensionRegistry, tag)) {
                      this.setUnknownFields(unknownFields.build());
                      onChanged();
                      return this;
                    }
                    break;
                  }
                case 10:
                  {
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .OperatingSystem.NetworkInterface.Builder
                        subBuilder =
                            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                                .OperatingSystem.NetworkInterface.newBuilder();
                    input.readMessage(subBuilder, extensionRegistry);
                    addNetworkInterfaces(subBuilder.buildPartial());
                    break;
                  }
                case 18:
                  {
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                            .Process.Builder
                        subBuilder =
                            com.google.firebase.crashlytics.device.session.Crashlytics.Session
                                .Application.Process.newBuilder();
                    input.readMessage(subBuilder, extensionRegistry);
                    addProcesses(subBuilder.buildPartial());
                    break;
                  }
              }
            }
          }

          private int bitField0_;

          // repeated .Crashlytics.Session.Event.OperatingSystem.NetworkInterface network_interfaces
          // = 1;
          private java.util.List<
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .OperatingSystem.NetworkInterface>
              networkInterfaces_ = java.util.Collections.emptyList();

          private void ensureNetworkInterfacesIsMutable() {
            if (!((bitField0_ & 0x00000001) == 0x00000001)) {
              networkInterfaces_ =
                  new java.util.ArrayList<
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .OperatingSystem.NetworkInterface>(networkInterfaces_);
              bitField0_ |= 0x00000001;
            }
          }

          private com.google.protobuf.RepeatedFieldBuilder<
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .OperatingSystem.NetworkInterface,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .OperatingSystem.NetworkInterface.Builder,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .OperatingSystem.NetworkInterfaceOrBuilder>
              networkInterfacesBuilder_;

          public java.util.List<
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .OperatingSystem.NetworkInterface>
              getNetworkInterfacesList() {
            if (networkInterfacesBuilder_ == null) {
              return java.util.Collections.unmodifiableList(networkInterfaces_);
            } else {
              return networkInterfacesBuilder_.getMessageList();
            }
          }

          public int getNetworkInterfacesCount() {
            if (networkInterfacesBuilder_ == null) {
              return networkInterfaces_.size();
            } else {
              return networkInterfacesBuilder_.getCount();
            }
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .OperatingSystem.NetworkInterface
              getNetworkInterfaces(int index) {
            if (networkInterfacesBuilder_ == null) {
              return networkInterfaces_.get(index);
            } else {
              return networkInterfacesBuilder_.getMessage(index);
            }
          }

          public Builder setNetworkInterfaces(
              int index,
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .OperatingSystem.NetworkInterface
                  value) {
            if (networkInterfacesBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureNetworkInterfacesIsMutable();
              networkInterfaces_.set(index, value);
              onChanged();
            } else {
              networkInterfacesBuilder_.setMessage(index, value);
            }
            return this;
          }

          public Builder setNetworkInterfaces(
              int index,
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .OperatingSystem.NetworkInterface.Builder
                  builderForValue) {
            if (networkInterfacesBuilder_ == null) {
              ensureNetworkInterfacesIsMutable();
              networkInterfaces_.set(index, builderForValue.build());
              onChanged();
            } else {
              networkInterfacesBuilder_.setMessage(index, builderForValue.build());
            }
            return this;
          }

          public Builder addNetworkInterfaces(
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .OperatingSystem.NetworkInterface
                  value) {
            if (networkInterfacesBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureNetworkInterfacesIsMutable();
              networkInterfaces_.add(value);
              onChanged();
            } else {
              networkInterfacesBuilder_.addMessage(value);
            }
            return this;
          }

          public Builder addNetworkInterfaces(
              int index,
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .OperatingSystem.NetworkInterface
                  value) {
            if (networkInterfacesBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureNetworkInterfacesIsMutable();
              networkInterfaces_.add(index, value);
              onChanged();
            } else {
              networkInterfacesBuilder_.addMessage(index, value);
            }
            return this;
          }

          public Builder addNetworkInterfaces(
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .OperatingSystem.NetworkInterface.Builder
                  builderForValue) {
            if (networkInterfacesBuilder_ == null) {
              ensureNetworkInterfacesIsMutable();
              networkInterfaces_.add(builderForValue.build());
              onChanged();
            } else {
              networkInterfacesBuilder_.addMessage(builderForValue.build());
            }
            return this;
          }

          public Builder addNetworkInterfaces(
              int index,
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .OperatingSystem.NetworkInterface.Builder
                  builderForValue) {
            if (networkInterfacesBuilder_ == null) {
              ensureNetworkInterfacesIsMutable();
              networkInterfaces_.add(index, builderForValue.build());
              onChanged();
            } else {
              networkInterfacesBuilder_.addMessage(index, builderForValue.build());
            }
            return this;
          }

          public Builder addAllNetworkInterfaces(
              java.lang.Iterable<
                      ? extends
                          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .OperatingSystem.NetworkInterface>
                  values) {
            if (networkInterfacesBuilder_ == null) {
              ensureNetworkInterfacesIsMutable();
              super.addAll(values, networkInterfaces_);
              onChanged();
            } else {
              networkInterfacesBuilder_.addAllMessages(values);
            }
            return this;
          }

          public Builder clearNetworkInterfaces() {
            if (networkInterfacesBuilder_ == null) {
              networkInterfaces_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000001);
              onChanged();
            } else {
              networkInterfacesBuilder_.clear();
            }
            return this;
          }

          public Builder removeNetworkInterfaces(int index) {
            if (networkInterfacesBuilder_ == null) {
              ensureNetworkInterfacesIsMutable();
              networkInterfaces_.remove(index);
              onChanged();
            } else {
              networkInterfacesBuilder_.remove(index);
            }
            return this;
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .OperatingSystem.NetworkInterface.Builder
              getNetworkInterfacesBuilder(int index) {
            return getNetworkInterfacesFieldBuilder().getBuilder(index);
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .OperatingSystem.NetworkInterfaceOrBuilder
              getNetworkInterfacesOrBuilder(int index) {
            if (networkInterfacesBuilder_ == null) {
              return networkInterfaces_.get(index);
            } else {
              return networkInterfacesBuilder_.getMessageOrBuilder(index);
            }
          }

          public java.util.List<
                  ? extends
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .OperatingSystem.NetworkInterfaceOrBuilder>
              getNetworkInterfacesOrBuilderList() {
            if (networkInterfacesBuilder_ != null) {
              return networkInterfacesBuilder_.getMessageOrBuilderList();
            } else {
              return java.util.Collections.unmodifiableList(networkInterfaces_);
            }
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .OperatingSystem.NetworkInterface.Builder
              addNetworkInterfacesBuilder() {
            return getNetworkInterfacesFieldBuilder()
                .addBuilder(
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.NetworkInterface.getDefaultInstance());
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .OperatingSystem.NetworkInterface.Builder
              addNetworkInterfacesBuilder(int index) {
            return getNetworkInterfacesFieldBuilder()
                .addBuilder(
                    index,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.NetworkInterface.getDefaultInstance());
          }

          public java.util.List<
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .OperatingSystem.NetworkInterface.Builder>
              getNetworkInterfacesBuilderList() {
            return getNetworkInterfacesFieldBuilder().getBuilderList();
          }

          private com.google.protobuf.RepeatedFieldBuilder<
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .OperatingSystem.NetworkInterface,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .OperatingSystem.NetworkInterface.Builder,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .OperatingSystem.NetworkInterfaceOrBuilder>
              getNetworkInterfacesFieldBuilder() {
            if (networkInterfacesBuilder_ == null) {
              networkInterfacesBuilder_ =
                  new com.google.protobuf.RepeatedFieldBuilder<
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .OperatingSystem.NetworkInterface,
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .OperatingSystem.NetworkInterface.Builder,
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .OperatingSystem.NetworkInterfaceOrBuilder>(
                      networkInterfaces_,
                      ((bitField0_ & 0x00000001) == 0x00000001),
                      getParentForChildren(),
                      isClean());
              networkInterfaces_ = null;
            }
            return networkInterfacesBuilder_;
          }

          // repeated .Crashlytics.Session.Application.Process processes = 2;
          private java.util.List<
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                      .Process>
              processes_ = java.util.Collections.emptyList();

          private void ensureProcessesIsMutable() {
            if (!((bitField0_ & 0x00000002) == 0x00000002)) {
              processes_ =
                  new java.util.ArrayList<
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                          .Process>(processes_);
              bitField0_ |= 0x00000002;
            }
          }

          private com.google.protobuf.RepeatedFieldBuilder<
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                      .Process,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                      .Process.Builder,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                      .ProcessOrBuilder>
              processesBuilder_;

          public java.util.List<
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                      .Process>
              getProcessesList() {
            if (processesBuilder_ == null) {
              return java.util.Collections.unmodifiableList(processes_);
            } else {
              return processesBuilder_.getMessageList();
            }
          }

          public int getProcessesCount() {
            if (processesBuilder_ == null) {
              return processes_.size();
            } else {
              return processesBuilder_.getCount();
            }
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                  .Process
              getProcesses(int index) {
            if (processesBuilder_ == null) {
              return processes_.get(index);
            } else {
              return processesBuilder_.getMessage(index);
            }
          }

          public Builder setProcesses(
              int index,
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application.Process
                  value) {
            if (processesBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureProcessesIsMutable();
              processes_.set(index, value);
              onChanged();
            } else {
              processesBuilder_.setMessage(index, value);
            }
            return this;
          }

          public Builder setProcesses(
              int index,
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application.Process
                      .Builder
                  builderForValue) {
            if (processesBuilder_ == null) {
              ensureProcessesIsMutable();
              processes_.set(index, builderForValue.build());
              onChanged();
            } else {
              processesBuilder_.setMessage(index, builderForValue.build());
            }
            return this;
          }

          public Builder addProcesses(
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application.Process
                  value) {
            if (processesBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureProcessesIsMutable();
              processes_.add(value);
              onChanged();
            } else {
              processesBuilder_.addMessage(value);
            }
            return this;
          }

          public Builder addProcesses(
              int index,
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application.Process
                  value) {
            if (processesBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureProcessesIsMutable();
              processes_.add(index, value);
              onChanged();
            } else {
              processesBuilder_.addMessage(index, value);
            }
            return this;
          }

          public Builder addProcesses(
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application.Process
                      .Builder
                  builderForValue) {
            if (processesBuilder_ == null) {
              ensureProcessesIsMutable();
              processes_.add(builderForValue.build());
              onChanged();
            } else {
              processesBuilder_.addMessage(builderForValue.build());
            }
            return this;
          }

          public Builder addProcesses(
              int index,
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application.Process
                      .Builder
                  builderForValue) {
            if (processesBuilder_ == null) {
              ensureProcessesIsMutable();
              processes_.add(index, builderForValue.build());
              onChanged();
            } else {
              processesBuilder_.addMessage(index, builderForValue.build());
            }
            return this;
          }

          public Builder addAllProcesses(
              java.lang.Iterable<
                      ? extends
                          com.google.firebase.crashlytics.device.session.Crashlytics.Session
                              .Application.Process>
                  values) {
            if (processesBuilder_ == null) {
              ensureProcessesIsMutable();
              super.addAll(values, processes_);
              onChanged();
            } else {
              processesBuilder_.addAllMessages(values);
            }
            return this;
          }

          public Builder clearProcesses() {
            if (processesBuilder_ == null) {
              processes_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000002);
              onChanged();
            } else {
              processesBuilder_.clear();
            }
            return this;
          }

          public Builder removeProcesses(int index) {
            if (processesBuilder_ == null) {
              ensureProcessesIsMutable();
              processes_.remove(index);
              onChanged();
            } else {
              processesBuilder_.remove(index);
            }
            return this;
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                  .Process.Builder
              getProcessesBuilder(int index) {
            return getProcessesFieldBuilder().getBuilder(index);
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                  .ProcessOrBuilder
              getProcessesOrBuilder(int index) {
            if (processesBuilder_ == null) {
              return processes_.get(index);
            } else {
              return processesBuilder_.getMessageOrBuilder(index);
            }
          }

          public java.util.List<
                  ? extends
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                          .ProcessOrBuilder>
              getProcessesOrBuilderList() {
            if (processesBuilder_ != null) {
              return processesBuilder_.getMessageOrBuilderList();
            } else {
              return java.util.Collections.unmodifiableList(processes_);
            }
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                  .Process.Builder
              addProcessesBuilder() {
            return getProcessesFieldBuilder()
                .addBuilder(
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                        .Process.getDefaultInstance());
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                  .Process.Builder
              addProcessesBuilder(int index) {
            return getProcessesFieldBuilder()
                .addBuilder(
                    index,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                        .Process.getDefaultInstance());
          }

          public java.util.List<
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                      .Process.Builder>
              getProcessesBuilderList() {
            return getProcessesFieldBuilder().getBuilderList();
          }

          private com.google.protobuf.RepeatedFieldBuilder<
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                      .Process,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                      .Process.Builder,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                      .ProcessOrBuilder>
              getProcessesFieldBuilder() {
            if (processesBuilder_ == null) {
              processesBuilder_ =
                  new com.google.protobuf.RepeatedFieldBuilder<
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                          .Process,
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                          .Process.Builder,
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                          .ProcessOrBuilder>(
                      processes_,
                      ((bitField0_ & 0x00000002) == 0x00000002),
                      getParentForChildren(),
                      isClean());
              processes_ = null;
            }
            return processesBuilder_;
          }

          // @@protoc_insertion_point(builder_scope:Crashlytics.Session.Event.OperatingSystem)
        }

        static {
          defaultInstance = new OperatingSystem(true);
          defaultInstance.initFields();
        }

        // @@protoc_insertion_point(class_scope:Crashlytics.Session.Event.OperatingSystem)
      }

      public interface DeviceOrBuilder extends com.google.protobuf.MessageOrBuilder {

        // optional float battery_level = 1;
        boolean hasBatteryLevel();

        float getBatteryLevel();

        // optional sint32 battery_velocity = 2;
        boolean hasBatteryVelocity();

        int getBatteryVelocity();

        // optional bool proximity_on = 3;
        boolean hasProximityOn();

        boolean getProximityOn();

        // optional uint32 orientation = 4;
        boolean hasOrientation();

        int getOrientation();

        // optional uint64 ram_used = 5;
        boolean hasRamUsed();

        long getRamUsed();

        // optional uint64 disk_used = 6;
        boolean hasDiskUsed();

        long getDiskUsed();
      }

      public static final class Device extends com.google.protobuf.GeneratedMessage
          implements DeviceOrBuilder {
        // Use Device.newBuilder() to construct.
        private Device(Builder builder) {
          super(builder);
        }

        private Device(boolean noInit) {}

        private static final Device defaultInstance;

        public static Device getDefaultInstance() {
          return defaultInstance;
        }

        public Device getDefaultInstanceForType() {
          return defaultInstance;
        }

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
          return com.google.firebase.crashlytics.device.session.Crashlytics
              .internal_static_Crashlytics_Session_Event_Device_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.firebase.crashlytics.device.session.Crashlytics
              .internal_static_Crashlytics_Session_Event_Device_fieldAccessorTable;
        }

        private int bitField0_;
        // optional float battery_level = 1;
        public static final int BATTERY_LEVEL_FIELD_NUMBER = 1;
        private float batteryLevel_;

        public boolean hasBatteryLevel() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }

        public float getBatteryLevel() {
          return batteryLevel_;
        }

        // optional sint32 battery_velocity = 2;
        public static final int BATTERY_VELOCITY_FIELD_NUMBER = 2;
        private int batteryVelocity_;

        public boolean hasBatteryVelocity() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }

        public int getBatteryVelocity() {
          return batteryVelocity_;
        }

        // optional bool proximity_on = 3;
        public static final int PROXIMITY_ON_FIELD_NUMBER = 3;
        private boolean proximityOn_;

        public boolean hasProximityOn() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }

        public boolean getProximityOn() {
          return proximityOn_;
        }

        // optional uint32 orientation = 4;
        public static final int ORIENTATION_FIELD_NUMBER = 4;
        private int orientation_;

        public boolean hasOrientation() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }

        public int getOrientation() {
          return orientation_;
        }

        // optional uint64 ram_used = 5;
        public static final int RAM_USED_FIELD_NUMBER = 5;
        private long ramUsed_;

        public boolean hasRamUsed() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }

        public long getRamUsed() {
          return ramUsed_;
        }

        // optional uint64 disk_used = 6;
        public static final int DISK_USED_FIELD_NUMBER = 6;
        private long diskUsed_;

        public boolean hasDiskUsed() {
          return ((bitField0_ & 0x00000020) == 0x00000020);
        }

        public long getDiskUsed() {
          return diskUsed_;
        }

        private void initFields() {
          batteryLevel_ = 0F;
          batteryVelocity_ = 0;
          proximityOn_ = false;
          orientation_ = 0;
          ramUsed_ = 0L;
          diskUsed_ = 0L;
        }

        private byte memoizedIsInitialized = -1;

        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized != -1) return isInitialized == 1;

          memoizedIsInitialized = 1;
          return true;
        }

        public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
          getSerializedSize();
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            output.writeFloat(1, batteryLevel_);
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            output.writeSInt32(2, batteryVelocity_);
          }
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            output.writeBool(3, proximityOn_);
          }
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            output.writeUInt32(4, orientation_);
          }
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            output.writeUInt64(5, ramUsed_);
          }
          if (((bitField0_ & 0x00000020) == 0x00000020)) {
            output.writeUInt64(6, diskUsed_);
          }
          getUnknownFields().writeTo(output);
        }

        private int memoizedSerializedSize = -1;

        public int getSerializedSize() {
          int size = memoizedSerializedSize;
          if (size != -1) return size;

          size = 0;
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            size += com.google.protobuf.CodedOutputStream.computeFloatSize(1, batteryLevel_);
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            size += com.google.protobuf.CodedOutputStream.computeSInt32Size(2, batteryVelocity_);
          }
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, proximityOn_);
          }
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            size += com.google.protobuf.CodedOutputStream.computeUInt32Size(4, orientation_);
          }
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            size += com.google.protobuf.CodedOutputStream.computeUInt64Size(5, ramUsed_);
          }
          if (((bitField0_ & 0x00000020) == 0x00000020)) {
            size += com.google.protobuf.CodedOutputStream.computeUInt64Size(6, diskUsed_);
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSerializedSize = size;
          return size;
        }

        private static final long serialVersionUID = 0L;

        @java.lang.Override
        protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
          return super.writeReplace();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .Device
            parseFrom(com.google.protobuf.ByteString data)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .Device
            parseFrom(
                com.google.protobuf.ByteString data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .Device
            parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .Device
            parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .Device
            parseFrom(java.io.InputStream input) throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .Device
            parseFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .Device
            parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .Device
            parseDelimitedFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .Device
            parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .Device
            parseFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
        }

        public static Builder newBuilder() {
          return Builder.create();
        }

        public Builder newBuilderForType() {
          return newBuilder();
        }

        public static Builder newBuilder(
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device
                prototype) {
          return newBuilder().mergeFrom(prototype);
        }

        public Builder toBuilder() {
          return newBuilder(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }

        public static final class Builder
            extends com.google.protobuf.GeneratedMessage.Builder<Builder>
            implements com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .DeviceOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return com.google.firebase.crashlytics.device.session.Crashlytics
                .internal_static_Crashlytics_Session_Event_Device_descriptor;
          }

          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return com.google.firebase.crashlytics.device.session.Crashlytics
                .internal_static_Crashlytics_Session_Event_Device_fieldAccessorTable;
          }

          // Construct using
          // com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }

          private Builder(BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }

          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {}
          }

          private static Builder create() {
            return new Builder();
          }

          public Builder clear() {
            super.clear();
            batteryLevel_ = 0F;
            bitField0_ = (bitField0_ & ~0x00000001);
            batteryVelocity_ = 0;
            bitField0_ = (bitField0_ & ~0x00000002);
            proximityOn_ = false;
            bitField0_ = (bitField0_ & ~0x00000004);
            orientation_ = 0;
            bitField0_ = (bitField0_ & ~0x00000008);
            ramUsed_ = 0L;
            bitField0_ = (bitField0_ & ~0x00000010);
            diskUsed_ = 0L;
            bitField0_ = (bitField0_ & ~0x00000020);
            return this;
          }

          public Builder clone() {
            return create().mergeFrom(buildPartial());
          }

          public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
            return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device
                .getDescriptor();
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device
              getDefaultInstanceForType() {
            return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device
                .getDefaultInstance();
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device
              build() {
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device result =
                buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device
              buildParsed() throws com.google.protobuf.InvalidProtocolBufferException {
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device result =
                buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result).asInvalidProtocolBufferException();
            }
            return result;
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device
              buildPartial() {
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device result =
                new com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device(
                    this);
            int from_bitField0_ = bitField0_;
            int to_bitField0_ = 0;
            if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
              to_bitField0_ |= 0x00000001;
            }
            result.batteryLevel_ = batteryLevel_;
            if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
              to_bitField0_ |= 0x00000002;
            }
            result.batteryVelocity_ = batteryVelocity_;
            if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
              to_bitField0_ |= 0x00000004;
            }
            result.proximityOn_ = proximityOn_;
            if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
              to_bitField0_ |= 0x00000008;
            }
            result.orientation_ = orientation_;
            if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
              to_bitField0_ |= 0x00000010;
            }
            result.ramUsed_ = ramUsed_;
            if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
              to_bitField0_ |= 0x00000020;
            }
            result.diskUsed_ = diskUsed_;
            result.bitField0_ = to_bitField0_;
            onBuilt();
            return result;
          }

          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other
                instanceof
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device) {
              return mergeFrom(
                  (com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device)
                      other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device
                  other) {
            if (other
                == com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device
                    .getDefaultInstance()) return this;
            if (other.hasBatteryLevel()) {
              setBatteryLevel(other.getBatteryLevel());
            }
            if (other.hasBatteryVelocity()) {
              setBatteryVelocity(other.getBatteryVelocity());
            }
            if (other.hasProximityOn()) {
              setProximityOn(other.getProximityOn());
            }
            if (other.hasOrientation()) {
              setOrientation(other.getOrientation());
            }
            if (other.hasRamUsed()) {
              setRamUsed(other.getRamUsed());
            }
            if (other.hasDiskUsed()) {
              setDiskUsed(other.getDiskUsed());
            }
            this.mergeUnknownFields(other.getUnknownFields());
            return this;
          }

          public final boolean isInitialized() {
            return true;
          }

          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                com.google.protobuf.UnknownFieldSet.newBuilder(this.getUnknownFields());
            while (true) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                default:
                  {
                    if (!parseUnknownField(
                        input, unknownFields,
                        extensionRegistry, tag)) {
                      this.setUnknownFields(unknownFields.build());
                      onChanged();
                      return this;
                    }
                    break;
                  }
                case 13:
                  {
                    bitField0_ |= 0x00000001;
                    batteryLevel_ = input.readFloat();
                    break;
                  }
                case 16:
                  {
                    bitField0_ |= 0x00000002;
                    batteryVelocity_ = input.readSInt32();
                    break;
                  }
                case 24:
                  {
                    bitField0_ |= 0x00000004;
                    proximityOn_ = input.readBool();
                    break;
                  }
                case 32:
                  {
                    bitField0_ |= 0x00000008;
                    orientation_ = input.readUInt32();
                    break;
                  }
                case 40:
                  {
                    bitField0_ |= 0x00000010;
                    ramUsed_ = input.readUInt64();
                    break;
                  }
                case 48:
                  {
                    bitField0_ |= 0x00000020;
                    diskUsed_ = input.readUInt64();
                    break;
                  }
              }
            }
          }

          private int bitField0_;

          // optional float battery_level = 1;
          private float batteryLevel_;

          public boolean hasBatteryLevel() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }

          public float getBatteryLevel() {
            return batteryLevel_;
          }

          public Builder setBatteryLevel(float value) {
            bitField0_ |= 0x00000001;
            batteryLevel_ = value;
            onChanged();
            return this;
          }

          public Builder clearBatteryLevel() {
            bitField0_ = (bitField0_ & ~0x00000001);
            batteryLevel_ = 0F;
            onChanged();
            return this;
          }

          // optional sint32 battery_velocity = 2;
          private int batteryVelocity_;

          public boolean hasBatteryVelocity() {
            return ((bitField0_ & 0x00000002) == 0x00000002);
          }

          public int getBatteryVelocity() {
            return batteryVelocity_;
          }

          public Builder setBatteryVelocity(int value) {
            bitField0_ |= 0x00000002;
            batteryVelocity_ = value;
            onChanged();
            return this;
          }

          public Builder clearBatteryVelocity() {
            bitField0_ = (bitField0_ & ~0x00000002);
            batteryVelocity_ = 0;
            onChanged();
            return this;
          }

          // optional bool proximity_on = 3;
          private boolean proximityOn_;

          public boolean hasProximityOn() {
            return ((bitField0_ & 0x00000004) == 0x00000004);
          }

          public boolean getProximityOn() {
            return proximityOn_;
          }

          public Builder setProximityOn(boolean value) {
            bitField0_ |= 0x00000004;
            proximityOn_ = value;
            onChanged();
            return this;
          }

          public Builder clearProximityOn() {
            bitField0_ = (bitField0_ & ~0x00000004);
            proximityOn_ = false;
            onChanged();
            return this;
          }

          // optional uint32 orientation = 4;
          private int orientation_;

          public boolean hasOrientation() {
            return ((bitField0_ & 0x00000008) == 0x00000008);
          }

          public int getOrientation() {
            return orientation_;
          }

          public Builder setOrientation(int value) {
            bitField0_ |= 0x00000008;
            orientation_ = value;
            onChanged();
            return this;
          }

          public Builder clearOrientation() {
            bitField0_ = (bitField0_ & ~0x00000008);
            orientation_ = 0;
            onChanged();
            return this;
          }

          // optional uint64 ram_used = 5;
          private long ramUsed_;

          public boolean hasRamUsed() {
            return ((bitField0_ & 0x00000010) == 0x00000010);
          }

          public long getRamUsed() {
            return ramUsed_;
          }

          public Builder setRamUsed(long value) {
            bitField0_ |= 0x00000010;
            ramUsed_ = value;
            onChanged();
            return this;
          }

          public Builder clearRamUsed() {
            bitField0_ = (bitField0_ & ~0x00000010);
            ramUsed_ = 0L;
            onChanged();
            return this;
          }

          // optional uint64 disk_used = 6;
          private long diskUsed_;

          public boolean hasDiskUsed() {
            return ((bitField0_ & 0x00000020) == 0x00000020);
          }

          public long getDiskUsed() {
            return diskUsed_;
          }

          public Builder setDiskUsed(long value) {
            bitField0_ |= 0x00000020;
            diskUsed_ = value;
            onChanged();
            return this;
          }

          public Builder clearDiskUsed() {
            bitField0_ = (bitField0_ & ~0x00000020);
            diskUsed_ = 0L;
            onChanged();
            return this;
          }

          // @@protoc_insertion_point(builder_scope:Crashlytics.Session.Event.Device)
        }

        static {
          defaultInstance = new Device(true);
          defaultInstance.initFields();
        }

        // @@protoc_insertion_point(class_scope:Crashlytics.Session.Event.Device)
      }

      public interface LogOrBuilder extends com.google.protobuf.MessageOrBuilder {

        // optional string content = 1;
        boolean hasContent();

        String getContent();

        // optional uint32 last_offset = 2;
        boolean hasLastOffset();

        int getLastOffset();
      }

      public static final class Log extends com.google.protobuf.GeneratedMessage
          implements LogOrBuilder {
        // Use Log.newBuilder() to construct.
        private Log(Builder builder) {
          super(builder);
        }

        private Log(boolean noInit) {}

        private static final Log defaultInstance;

        public static Log getDefaultInstance() {
          return defaultInstance;
        }

        public Log getDefaultInstanceForType() {
          return defaultInstance;
        }

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
          return com.google.firebase.crashlytics.device.session.Crashlytics
              .internal_static_Crashlytics_Session_Event_Log_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.firebase.crashlytics.device.session.Crashlytics
              .internal_static_Crashlytics_Session_Event_Log_fieldAccessorTable;
        }

        private int bitField0_;
        // optional string content = 1;
        public static final int CONTENT_FIELD_NUMBER = 1;
        private java.lang.Object content_;

        public boolean hasContent() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }

        public String getContent() {
          java.lang.Object ref = content_;
          if (ref instanceof String) {
            return (String) ref;
          } else {
            com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
            String s = bs.toStringUtf8();
            if (com.google.protobuf.Internal.isValidUtf8(bs)) {
              content_ = s;
            }
            return s;
          }
        }

        private com.google.protobuf.ByteString getContentBytes() {
          java.lang.Object ref = content_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b =
                com.google.protobuf.ByteString.copyFromUtf8((String) ref);
            content_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }

        // optional uint32 last_offset = 2;
        public static final int LAST_OFFSET_FIELD_NUMBER = 2;
        private int lastOffset_;

        public boolean hasLastOffset() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }

        public int getLastOffset() {
          return lastOffset_;
        }

        private void initFields() {
          content_ = "";
          lastOffset_ = 0;
        }

        private byte memoizedIsInitialized = -1;

        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized != -1) return isInitialized == 1;

          memoizedIsInitialized = 1;
          return true;
        }

        public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
          getSerializedSize();
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            output.writeBytes(1, getContentBytes());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            output.writeUInt32(2, lastOffset_);
          }
          getUnknownFields().writeTo(output);
        }

        private int memoizedSerializedSize = -1;

        public int getSerializedSize() {
          int size = memoizedSerializedSize;
          if (size != -1) return size;

          size = 0;
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            size += com.google.protobuf.CodedOutputStream.computeBytesSize(1, getContentBytes());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            size += com.google.protobuf.CodedOutputStream.computeUInt32Size(2, lastOffset_);
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSerializedSize = size;
          return size;
        }

        private static final long serialVersionUID = 0L;

        @java.lang.Override
        protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
          return super.writeReplace();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log
            parseFrom(com.google.protobuf.ByteString data)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log
            parseFrom(
                com.google.protobuf.ByteString data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log
            parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log
            parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log
            parseFrom(java.io.InputStream input) throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log
            parseFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log
            parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log
            parseDelimitedFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log
            parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }

        public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log
            parseFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
        }

        public static Builder newBuilder() {
          return Builder.create();
        }

        public Builder newBuilderForType() {
          return newBuilder();
        }

        public static Builder newBuilder(
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log
                prototype) {
          return newBuilder().mergeFrom(prototype);
        }

        public Builder toBuilder() {
          return newBuilder(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }

        public static final class Builder
            extends com.google.protobuf.GeneratedMessage.Builder<Builder>
            implements com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .LogOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return com.google.firebase.crashlytics.device.session.Crashlytics
                .internal_static_Crashlytics_Session_Event_Log_descriptor;
          }

          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return com.google.firebase.crashlytics.device.session.Crashlytics
                .internal_static_Crashlytics_Session_Event_Log_fieldAccessorTable;
          }

          // Construct using
          // com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }

          private Builder(BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }

          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {}
          }

          private static Builder create() {
            return new Builder();
          }

          public Builder clear() {
            super.clear();
            content_ = "";
            bitField0_ = (bitField0_ & ~0x00000001);
            lastOffset_ = 0;
            bitField0_ = (bitField0_ & ~0x00000002);
            return this;
          }

          public Builder clone() {
            return create().mergeFrom(buildPartial());
          }

          public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
            return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log
                .getDescriptor();
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log
              getDefaultInstanceForType() {
            return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log
                .getDefaultInstance();
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log
              build() {
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log result =
                buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log
              buildParsed() throws com.google.protobuf.InvalidProtocolBufferException {
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log result =
                buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result).asInvalidProtocolBufferException();
            }
            return result;
          }

          public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log
              buildPartial() {
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log result =
                new com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log(
                    this);
            int from_bitField0_ = bitField0_;
            int to_bitField0_ = 0;
            if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
              to_bitField0_ |= 0x00000001;
            }
            result.content_ = content_;
            if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
              to_bitField0_ |= 0x00000002;
            }
            result.lastOffset_ = lastOffset_;
            result.bitField0_ = to_bitField0_;
            onBuilt();
            return result;
          }

          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other
                instanceof
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log) {
              return mergeFrom(
                  (com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log)
                      other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log other) {
            if (other
                == com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log
                    .getDefaultInstance()) return this;
            if (other.hasContent()) {
              setContent(other.getContent());
            }
            if (other.hasLastOffset()) {
              setLastOffset(other.getLastOffset());
            }
            this.mergeUnknownFields(other.getUnknownFields());
            return this;
          }

          public final boolean isInitialized() {
            return true;
          }

          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                com.google.protobuf.UnknownFieldSet.newBuilder(this.getUnknownFields());
            while (true) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                default:
                  {
                    if (!parseUnknownField(
                        input, unknownFields,
                        extensionRegistry, tag)) {
                      this.setUnknownFields(unknownFields.build());
                      onChanged();
                      return this;
                    }
                    break;
                  }
                case 10:
                  {
                    bitField0_ |= 0x00000001;
                    content_ = input.readBytes();
                    break;
                  }
                case 16:
                  {
                    bitField0_ |= 0x00000002;
                    lastOffset_ = input.readUInt32();
                    break;
                  }
              }
            }
          }

          private int bitField0_;

          // optional string content = 1;
          private java.lang.Object content_ = "";

          public boolean hasContent() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }

          public String getContent() {
            java.lang.Object ref = content_;
            if (!(ref instanceof String)) {
              String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
              content_ = s;
              return s;
            } else {
              return (String) ref;
            }
          }

          public Builder setContent(String value) {
            if (value == null) {
              throw new NullPointerException();
            }
            bitField0_ |= 0x00000001;
            content_ = value;
            onChanged();
            return this;
          }

          public Builder clearContent() {
            bitField0_ = (bitField0_ & ~0x00000001);
            content_ = getDefaultInstance().getContent();
            onChanged();
            return this;
          }

          void setContent(com.google.protobuf.ByteString value) {
            bitField0_ |= 0x00000001;
            content_ = value;
            onChanged();
          }

          // optional uint32 last_offset = 2;
          private int lastOffset_;

          public boolean hasLastOffset() {
            return ((bitField0_ & 0x00000002) == 0x00000002);
          }

          public int getLastOffset() {
            return lastOffset_;
          }

          public Builder setLastOffset(int value) {
            bitField0_ |= 0x00000002;
            lastOffset_ = value;
            onChanged();
            return this;
          }

          public Builder clearLastOffset() {
            bitField0_ = (bitField0_ & ~0x00000002);
            lastOffset_ = 0;
            onChanged();
            return this;
          }

          // @@protoc_insertion_point(builder_scope:Crashlytics.Session.Event.Log)
        }

        static {
          defaultInstance = new Log(true);
          defaultInstance.initFields();
        }

        // @@protoc_insertion_point(class_scope:Crashlytics.Session.Event.Log)
      }

      private int bitField0_;
      // required uint64 timestamp = 1;
      public static final int TIMESTAMP_FIELD_NUMBER = 1;
      private long timestamp_;

      public boolean hasTimestamp() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }

      public long getTimestamp() {
        return timestamp_;
      }

      // required string type = 2;
      public static final int TYPE_FIELD_NUMBER = 2;
      private java.lang.Object type_;

      public boolean hasType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }

      public String getType() {
        java.lang.Object ref = type_;
        if (ref instanceof String) {
          return (String) ref;
        } else {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (com.google.protobuf.Internal.isValidUtf8(bs)) {
            type_ = s;
          }
          return s;
        }
      }

      private com.google.protobuf.ByteString getTypeBytes() {
        java.lang.Object ref = type_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
          type_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      // optional string aggregation_id = 7;
      public static final int AGGREGATION_ID_FIELD_NUMBER = 7;
      private java.lang.Object aggregationId_;

      public boolean hasAggregationId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }

      public String getAggregationId() {
        java.lang.Object ref = aggregationId_;
        if (ref instanceof String) {
          return (String) ref;
        } else {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (com.google.protobuf.Internal.isValidUtf8(bs)) {
            aggregationId_ = s;
          }
          return s;
        }
      }

      private com.google.protobuf.ByteString getAggregationIdBytes() {
        java.lang.Object ref = aggregationId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
          aggregationId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      // optional .Crashlytics.Session.Event.Application app = 3;
      public static final int APP_FIELD_NUMBER = 3;
      private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
          app_;

      public boolean hasApp() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
          getApp() {
        return app_;
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
              .ApplicationOrBuilder
          getAppOrBuilder() {
        return app_;
      }

      // optional .Crashlytics.Session.Event.OperatingSystem os = 4;
      public static final int OS_FIELD_NUMBER = 4;
      private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
              .OperatingSystem
          os_;

      public boolean hasOs() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
              .OperatingSystem
          getOs() {
        return os_;
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
              .OperatingSystemOrBuilder
          getOsOrBuilder() {
        return os_;
      }

      // optional .Crashlytics.Session.Event.Device device = 5;
      public static final int DEVICE_FIELD_NUMBER = 5;
      private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device
          device_;

      public boolean hasDevice() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device
          getDevice() {
        return device_;
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
              .DeviceOrBuilder
          getDeviceOrBuilder() {
        return device_;
      }

      // optional .Crashlytics.Session.Event.Log log = 6;
      public static final int LOG_FIELD_NUMBER = 6;
      private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log log_;

      public boolean hasLog() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log getLog() {
        return log_;
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.LogOrBuilder
          getLogOrBuilder() {
        return log_;
      }

      private void initFields() {
        timestamp_ = 0L;
        type_ = "";
        aggregationId_ = "";
        app_ =
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                .getDefaultInstance();
        os_ =
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.OperatingSystem
                .getDefaultInstance();
        device_ =
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device
                .getDefaultInstance();
        log_ =
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log
                .getDefaultInstance();
      }

      private byte memoizedIsInitialized = -1;

      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        if (!hasTimestamp()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasType()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (hasApp()) {
          if (!getApp().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasOs()) {
          if (!getOs().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeUInt64(1, timestamp_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeBytes(2, getTypeBytes());
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeMessage(3, app_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          output.writeMessage(4, os_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          output.writeMessage(5, device_);
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          output.writeMessage(6, log_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeBytes(7, getAggregationIdBytes());
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;

      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream.computeUInt64Size(1, timestamp_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream.computeBytesSize(2, getTypeBytes());
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, app_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, os_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, device_);
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, log_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size +=
              com.google.protobuf.CodedOutputStream.computeBytesSize(7, getAggregationIdBytes());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;

      @java.lang.Override
      protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
          parseFrom(com.google.protobuf.ByteString data)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
          parseFrom(
              com.google.protobuf.ByteString data,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
          parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
          parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
          parseFrom(java.io.InputStream input) throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
          parseFrom(
              java.io.InputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
          parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
          parseDelimitedFrom(
              java.io.InputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
          parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }

      public static com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
          parseFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
      }

      public static Builder newBuilder() {
        return Builder.create();
      }

      public Builder newBuilderForType() {
        return newBuilder();
      }

      public static Builder newBuilder(
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event prototype) {
        return newBuilder().mergeFrom(prototype);
      }

      public Builder toBuilder() {
        return newBuilder(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }

      public static final class Builder
          extends com.google.protobuf.GeneratedMessage.Builder<Builder>
          implements com.google.firebase.crashlytics.device.session.Crashlytics.Session
              .EventOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
          return com.google.firebase.crashlytics.device.session.Crashlytics
              .internal_static_Crashlytics_Session_Event_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.firebase.crashlytics.device.session.Crashlytics
              .internal_static_Crashlytics_Session_Event_fieldAccessorTable;
        }

        // Construct using
        // com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }

        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getAppFieldBuilder();
            getOsFieldBuilder();
            getDeviceFieldBuilder();
            getLogFieldBuilder();
          }
        }

        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          timestamp_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000001);
          type_ = "";
          bitField0_ = (bitField0_ & ~0x00000002);
          aggregationId_ = "";
          bitField0_ = (bitField0_ & ~0x00000004);
          if (appBuilder_ == null) {
            app_ =
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                    .getDefaultInstance();
          } else {
            appBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000008);
          if (osBuilder_ == null) {
            os_ =
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem.getDefaultInstance();
          } else {
            osBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000010);
          if (deviceBuilder_ == null) {
            device_ =
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device
                    .getDefaultInstance();
          } else {
            deviceBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000020);
          if (logBuilder_ == null) {
            log_ =
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log
                    .getDefaultInstance();
          } else {
            logBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000040);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
          return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
              .getDescriptor();
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
            getDefaultInstanceForType() {
          return com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
              .getDefaultInstance();
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event build() {
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event result =
              buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
            buildParsed() throws com.google.protobuf.InvalidProtocolBufferException {
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event result =
              buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result).asInvalidProtocolBufferException();
          }
          return result;
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
            buildPartial() {
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event result =
              new com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.timestamp_ = timestamp_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.type_ = type_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.aggregationId_ = aggregationId_;
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          if (appBuilder_ == null) {
            result.app_ = app_;
          } else {
            result.app_ = appBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
            to_bitField0_ |= 0x00000010;
          }
          if (osBuilder_ == null) {
            result.os_ = os_;
          } else {
            result.os_ = osBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
            to_bitField0_ |= 0x00000020;
          }
          if (deviceBuilder_ == null) {
            result.device_ = device_;
          } else {
            result.device_ = deviceBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
            to_bitField0_ |= 0x00000040;
          }
          if (logBuilder_ == null) {
            result.log_ = log_;
          } else {
            result.log_ = logBuilder_.build();
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other
              instanceof com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event) {
            return mergeFrom(
                (com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event) other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event other) {
          if (other
              == com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                  .getDefaultInstance()) return this;
          if (other.hasTimestamp()) {
            setTimestamp(other.getTimestamp());
          }
          if (other.hasType()) {
            setType(other.getType());
          }
          if (other.hasAggregationId()) {
            setAggregationId(other.getAggregationId());
          }
          if (other.hasApp()) {
            mergeApp(other.getApp());
          }
          if (other.hasOs()) {
            mergeOs(other.getOs());
          }
          if (other.hasDevice()) {
            mergeDevice(other.getDevice());
          }
          if (other.hasLog()) {
            mergeLog(other.getLog());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          if (!hasTimestamp()) {

            return false;
          }
          if (!hasType()) {

            return false;
          }
          if (hasApp()) {
            if (!getApp().isInitialized()) {

              return false;
            }
          }
          if (hasOs()) {
            if (!getOs().isInitialized()) {

              return false;
            }
          }
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder(this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              default:
                {
                  if (!parseUnknownField(
                      input, unknownFields,
                      extensionRegistry, tag)) {
                    this.setUnknownFields(unknownFields.build());
                    onChanged();
                    return this;
                  }
                  break;
                }
              case 8:
                {
                  bitField0_ |= 0x00000001;
                  timestamp_ = input.readUInt64();
                  break;
                }
              case 18:
                {
                  bitField0_ |= 0x00000002;
                  type_ = input.readBytes();
                  break;
                }
              case 26:
                {
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .Application.Builder
                      subBuilder =
                          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .Application.newBuilder();
                  if (hasApp()) {
                    subBuilder.mergeFrom(getApp());
                  }
                  input.readMessage(subBuilder, extensionRegistry);
                  setApp(subBuilder.buildPartial());
                  break;
                }
              case 34:
                {
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                          .OperatingSystem.Builder
                      subBuilder =
                          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .OperatingSystem.newBuilder();
                  if (hasOs()) {
                    subBuilder.mergeFrom(getOs());
                  }
                  input.readMessage(subBuilder, extensionRegistry);
                  setOs(subBuilder.buildPartial());
                  break;
                }
              case 42:
                {
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device
                          .Builder
                      subBuilder =
                          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .Device.newBuilder();
                  if (hasDevice()) {
                    subBuilder.mergeFrom(getDevice());
                  }
                  input.readMessage(subBuilder, extensionRegistry);
                  setDevice(subBuilder.buildPartial());
                  break;
                }
              case 50:
                {
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log
                          .Builder
                      subBuilder =
                          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                              .Log.newBuilder();
                  if (hasLog()) {
                    subBuilder.mergeFrom(getLog());
                  }
                  input.readMessage(subBuilder, extensionRegistry);
                  setLog(subBuilder.buildPartial());
                  break;
                }
              case 58:
                {
                  bitField0_ |= 0x00000004;
                  aggregationId_ = input.readBytes();
                  break;
                }
            }
          }
        }

        private int bitField0_;

        // required uint64 timestamp = 1;
        private long timestamp_;

        public boolean hasTimestamp() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }

        public long getTimestamp() {
          return timestamp_;
        }

        public Builder setTimestamp(long value) {
          bitField0_ |= 0x00000001;
          timestamp_ = value;
          onChanged();
          return this;
        }

        public Builder clearTimestamp() {
          bitField0_ = (bitField0_ & ~0x00000001);
          timestamp_ = 0L;
          onChanged();
          return this;
        }

        // required string type = 2;
        private java.lang.Object type_ = "";

        public boolean hasType() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }

        public String getType() {
          java.lang.Object ref = type_;
          if (!(ref instanceof String)) {
            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
            type_ = s;
            return s;
          } else {
            return (String) ref;
          }
        }

        public Builder setType(String value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000002;
          type_ = value;
          onChanged();
          return this;
        }

        public Builder clearType() {
          bitField0_ = (bitField0_ & ~0x00000002);
          type_ = getDefaultInstance().getType();
          onChanged();
          return this;
        }

        void setType(com.google.protobuf.ByteString value) {
          bitField0_ |= 0x00000002;
          type_ = value;
          onChanged();
        }

        // optional string aggregation_id = 7;
        private java.lang.Object aggregationId_ = "";

        public boolean hasAggregationId() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }

        public String getAggregationId() {
          java.lang.Object ref = aggregationId_;
          if (!(ref instanceof String)) {
            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
            aggregationId_ = s;
            return s;
          } else {
            return (String) ref;
          }
        }

        public Builder setAggregationId(String value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000004;
          aggregationId_ = value;
          onChanged();
          return this;
        }

        public Builder clearAggregationId() {
          bitField0_ = (bitField0_ & ~0x00000004);
          aggregationId_ = getDefaultInstance().getAggregationId();
          onChanged();
          return this;
        }

        void setAggregationId(com.google.protobuf.ByteString value) {
          bitField0_ |= 0x00000004;
          aggregationId_ = value;
          onChanged();
        }

        // optional .Crashlytics.Session.Event.Application app = 3;
        private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
            app_ =
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                    .getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                    .Builder,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .ApplicationOrBuilder>
            appBuilder_;

        public boolean hasApp() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
            getApp() {
          if (appBuilder_ == null) {
            return app_;
          } else {
            return appBuilder_.getMessage();
          }
        }

        public Builder setApp(
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                value) {
          if (appBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            app_ = value;
            onChanged();
          } else {
            appBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000008;
          return this;
        }

        public Builder setApp(
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                    .Builder
                builderForValue) {
          if (appBuilder_ == null) {
            app_ = builderForValue.build();
            onChanged();
          } else {
            appBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000008;
          return this;
        }

        public Builder mergeApp(
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                value) {
          if (appBuilder_ == null) {
            if (((bitField0_ & 0x00000008) == 0x00000008)
                && app_
                    != com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.getDefaultInstance()) {
              app_ =
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .Application.newBuilder(app_)
                      .mergeFrom(value)
                      .buildPartial();
            } else {
              app_ = value;
            }
            onChanged();
          } else {
            appBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000008;
          return this;
        }

        public Builder clearApp() {
          if (appBuilder_ == null) {
            app_ =
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                    .getDefaultInstance();
            onChanged();
          } else {
            appBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000008);
          return this;
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                .Builder
            getAppBuilder() {
          bitField0_ |= 0x00000008;
          onChanged();
          return getAppFieldBuilder().getBuilder();
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .ApplicationOrBuilder
            getAppOrBuilder() {
          if (appBuilder_ != null) {
            return appBuilder_.getMessageOrBuilder();
          } else {
            return app_;
          }
        }

        private com.google.protobuf.SingleFieldBuilder<
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .Application,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Application
                    .Builder,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .ApplicationOrBuilder>
            getAppFieldBuilder() {
          if (appBuilder_ == null) {
            appBuilder_ =
                new com.google.protobuf.SingleFieldBuilder<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Builder,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .ApplicationOrBuilder>(app_, getParentForChildren(), isClean());
            app_ = null;
          }
          return appBuilder_;
        }

        // optional .Crashlytics.Session.Event.OperatingSystem os = 4;
        private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .OperatingSystem
            os_ =
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem.Builder,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystemOrBuilder>
            osBuilder_;

        public boolean hasOs() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .OperatingSystem
            getOs() {
          if (osBuilder_ == null) {
            return os_;
          } else {
            return osBuilder_.getMessage();
          }
        }

        public Builder setOs(
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.OperatingSystem
                value) {
          if (osBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            os_ = value;
            onChanged();
          } else {
            osBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000010;
          return this;
        }

        public Builder setOs(
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.OperatingSystem
                    .Builder
                builderForValue) {
          if (osBuilder_ == null) {
            os_ = builderForValue.build();
            onChanged();
          } else {
            osBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000010;
          return this;
        }

        public Builder mergeOs(
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.OperatingSystem
                value) {
          if (osBuilder_ == null) {
            if (((bitField0_ & 0x00000010) == 0x00000010)
                && os_
                    != com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.getDefaultInstance()) {
              os_ =
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                      .OperatingSystem.newBuilder(os_)
                      .mergeFrom(value)
                      .buildPartial();
            } else {
              os_ = value;
            }
            onChanged();
          } else {
            osBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000010;
          return this;
        }

        public Builder clearOs() {
          if (osBuilder_ == null) {
            os_ =
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem.getDefaultInstance();
            onChanged();
          } else {
            osBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000010);
          return this;
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .OperatingSystem.Builder
            getOsBuilder() {
          bitField0_ |= 0x00000010;
          onChanged();
          return getOsFieldBuilder().getBuilder();
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .OperatingSystemOrBuilder
            getOsOrBuilder() {
          if (osBuilder_ != null) {
            return osBuilder_.getMessageOrBuilder();
          } else {
            return os_;
          }
        }

        private com.google.protobuf.SingleFieldBuilder<
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystem.Builder,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .OperatingSystemOrBuilder>
            getOsFieldBuilder() {
          if (osBuilder_ == null) {
            osBuilder_ =
                new com.google.protobuf.SingleFieldBuilder<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.Builder,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystemOrBuilder>(os_, getParentForChildren(), isClean());
            os_ = null;
          }
          return osBuilder_;
        }

        // optional .Crashlytics.Session.Event.Device device = 5;
        private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device
            device_ =
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device
                    .getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device
                    .Builder,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .DeviceOrBuilder>
            deviceBuilder_;

        public boolean hasDevice() {
          return ((bitField0_ & 0x00000020) == 0x00000020);
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device
            getDevice() {
          if (deviceBuilder_ == null) {
            return device_;
          } else {
            return deviceBuilder_.getMessage();
          }
        }

        public Builder setDevice(
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device value) {
          if (deviceBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            device_ = value;
            onChanged();
          } else {
            deviceBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000020;
          return this;
        }

        public Builder setDevice(
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device.Builder
                builderForValue) {
          if (deviceBuilder_ == null) {
            device_ = builderForValue.build();
            onChanged();
          } else {
            deviceBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000020;
          return this;
        }

        public Builder mergeDevice(
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device value) {
          if (deviceBuilder_ == null) {
            if (((bitField0_ & 0x00000020) == 0x00000020)
                && device_
                    != com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Device.getDefaultInstance()) {
              device_ =
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device
                      .newBuilder(device_)
                      .mergeFrom(value)
                      .buildPartial();
            } else {
              device_ = value;
            }
            onChanged();
          } else {
            deviceBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000020;
          return this;
        }

        public Builder clearDevice() {
          if (deviceBuilder_ == null) {
            device_ =
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device
                    .getDefaultInstance();
            onChanged();
          } else {
            deviceBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000020);
          return this;
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device
                .Builder
            getDeviceBuilder() {
          bitField0_ |= 0x00000020;
          onChanged();
          return getDeviceFieldBuilder().getBuilder();
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                .DeviceOrBuilder
            getDeviceOrBuilder() {
          if (deviceBuilder_ != null) {
            return deviceBuilder_.getMessageOrBuilder();
          } else {
            return device_;
          }
        }

        private com.google.protobuf.SingleFieldBuilder<
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device
                    .Builder,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .DeviceOrBuilder>
            getDeviceFieldBuilder() {
          if (deviceBuilder_ == null) {
            deviceBuilder_ =
                new com.google.protobuf.SingleFieldBuilder<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device
                        .Builder,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .DeviceOrBuilder>(device_, getParentForChildren(), isClean());
            device_ = null;
          }
          return deviceBuilder_;
        }

        // optional .Crashlytics.Session.Event.Log log = 6;
        private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log log_ =
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log
                .getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log
                    .Builder,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .LogOrBuilder>
            logBuilder_;

        public boolean hasLog() {
          return ((bitField0_ & 0x00000040) == 0x00000040);
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log
            getLog() {
          if (logBuilder_ == null) {
            return log_;
          } else {
            return logBuilder_.getMessage();
          }
        }

        public Builder setLog(
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log value) {
          if (logBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            log_ = value;
            onChanged();
          } else {
            logBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000040;
          return this;
        }

        public Builder setLog(
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log.Builder
                builderForValue) {
          if (logBuilder_ == null) {
            log_ = builderForValue.build();
            onChanged();
          } else {
            logBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000040;
          return this;
        }

        public Builder mergeLog(
            com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log value) {
          if (logBuilder_ == null) {
            if (((bitField0_ & 0x00000040) == 0x00000040)
                && log_
                    != com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log
                        .getDefaultInstance()) {
              log_ =
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log
                      .newBuilder(log_)
                      .mergeFrom(value)
                      .buildPartial();
            } else {
              log_ = value;
            }
            onChanged();
          } else {
            logBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000040;
          return this;
        }

        public Builder clearLog() {
          if (logBuilder_ == null) {
            log_ =
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log
                    .getDefaultInstance();
            onChanged();
          } else {
            logBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000040);
          return this;
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log.Builder
            getLogBuilder() {
          bitField0_ |= 0x00000040;
          onChanged();
          return getLogFieldBuilder().getBuilder();
        }

        public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.LogOrBuilder
            getLogOrBuilder() {
          if (logBuilder_ != null) {
            return logBuilder_.getMessageOrBuilder();
          } else {
            return log_;
          }
        }

        private com.google.protobuf.SingleFieldBuilder<
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log
                    .Builder,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .LogOrBuilder>
            getLogFieldBuilder() {
          if (logBuilder_ == null) {
            logBuilder_ =
                new com.google.protobuf.SingleFieldBuilder<
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log
                        .Builder,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .LogOrBuilder>(log_, getParentForChildren(), isClean());
            log_ = null;
          }
          return logBuilder_;
        }

        // @@protoc_insertion_point(builder_scope:Crashlytics.Session.Event)
      }

      static {
        defaultInstance = new Event(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:Crashlytics.Session.Event)
    }

    private int bitField0_;
    // required string generator = 1;
    public static final int GENERATOR_FIELD_NUMBER = 1;
    private java.lang.Object generator_;

    public boolean hasGenerator() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }

    public String getGenerator() {
      java.lang.Object ref = generator_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          generator_ = s;
        }
        return s;
      }
    }

    private com.google.protobuf.ByteString getGeneratorBytes() {
      java.lang.Object ref = generator_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        generator_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // required bytes identifier = 2;
    public static final int IDENTIFIER_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString identifier_;

    public boolean hasIdentifier() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }

    public com.google.protobuf.ByteString getIdentifier() {
      return identifier_;
    }

    // required uint64 started_at = 3;
    public static final int STARTED_AT_FIELD_NUMBER = 3;
    private long startedAt_;

    public boolean hasStartedAt() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }

    public long getStartedAt() {
      return startedAt_;
    }

    // optional uint64 ended_at = 4;
    public static final int ENDED_AT_FIELD_NUMBER = 4;
    private long endedAt_;

    public boolean hasEndedAt() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }

    public long getEndedAt() {
      return endedAt_;
    }

    // optional bool crashed = 5;
    public static final int CRASHED_FIELD_NUMBER = 5;
    private boolean crashed_;

    public boolean hasCrashed() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }

    public boolean getCrashed() {
      return crashed_;
    }

    // optional uint32 analyzer = 11;
    public static final int ANALYZER_FIELD_NUMBER = 11;
    private int analyzer_;

    public boolean hasAnalyzer() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }

    public int getAnalyzer() {
      return analyzer_;
    }

    // optional .Crashlytics.GeneratorType generator_type = 12;
    public static final int GENERATOR_TYPE_FIELD_NUMBER = 12;
    private com.google.firebase.crashlytics.device.session.Crashlytics.GeneratorType generatorType_;

    public boolean hasGeneratorType() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }

    public com.google.firebase.crashlytics.device.session.Crashlytics.GeneratorType
        getGeneratorType() {
      return generatorType_;
    }

    // optional .Crashlytics.FrameDecoder frame_decoder = 13;
    public static final int FRAME_DECODER_FIELD_NUMBER = 13;
    private com.google.firebase.crashlytics.device.session.Crashlytics.FrameDecoder frameDecoder_;

    public boolean hasFrameDecoder() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }

    public com.google.firebase.crashlytics.device.session.Crashlytics.FrameDecoder
        getFrameDecoder() {
      return frameDecoder_;
    }

    // optional .Crashlytics.InternalData internal_data = 14;
    public static final int INTERNAL_DATA_FIELD_NUMBER = 14;
    private com.google.firebase.crashlytics.device.session.Crashlytics.InternalData internalData_;

    public boolean hasInternalData() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }

    public com.google.firebase.crashlytics.device.session.Crashlytics.InternalData
        getInternalData() {
      return internalData_;
    }

    public com.google.firebase.crashlytics.device.session.Crashlytics.InternalDataOrBuilder
        getInternalDataOrBuilder() {
      return internalData_;
    }

    // optional .Crashlytics.Session.User user = 6;
    public static final int USER_FIELD_NUMBER = 6;
    private com.google.firebase.crashlytics.device.session.Crashlytics.Session.User user_;

    public boolean hasUser() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }

    public com.google.firebase.crashlytics.device.session.Crashlytics.Session.User getUser() {
      return user_;
    }

    public com.google.firebase.crashlytics.device.session.Crashlytics.Session.UserOrBuilder
        getUserOrBuilder() {
      return user_;
    }

    // required .Crashlytics.Session.Application app = 7;
    public static final int APP_FIELD_NUMBER = 7;
    private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application app_;

    public boolean hasApp() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }

    public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application getApp() {
      return app_;
    }

    public com.google.firebase.crashlytics.device.session.Crashlytics.Session.ApplicationOrBuilder
        getAppOrBuilder() {
      return app_;
    }

    // optional .Crashlytics.Session.OperatingSystem os = 8;
    public static final int OS_FIELD_NUMBER = 8;
    private com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem os_;

    public boolean hasOs() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }

    public com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem
        getOs() {
      return os_;
    }

    public com.google.firebase.crashlytics.device.session.Crashlytics.Session
            .OperatingSystemOrBuilder
        getOsOrBuilder() {
      return os_;
    }

    // optional .Crashlytics.Session.Device device = 9;
    public static final int DEVICE_FIELD_NUMBER = 9;
    private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device device_;

    public boolean hasDevice() {
      return ((bitField0_ & 0x00001000) == 0x00001000);
    }

    public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device getDevice() {
      return device_;
    }

    public com.google.firebase.crashlytics.device.session.Crashlytics.Session.DeviceOrBuilder
        getDeviceOrBuilder() {
      return device_;
    }

    // repeated .Crashlytics.Session.Event events = 10;
    public static final int EVENTS_FIELD_NUMBER = 10;
    private java.util.List<com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event>
        events_;

    public java.util.List<com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event>
        getEventsList() {
      return events_;
    }

    public java.util.List<
            ? extends
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.EventOrBuilder>
        getEventsOrBuilderList() {
      return events_;
    }

    public int getEventsCount() {
      return events_.size();
    }

    public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event getEvents(
        int index) {
      return events_.get(index);
    }

    public com.google.firebase.crashlytics.device.session.Crashlytics.Session.EventOrBuilder
        getEventsOrBuilder(int index) {
      return events_.get(index);
    }

    private void initFields() {
      generator_ = "";
      identifier_ = com.google.protobuf.ByteString.EMPTY;
      startedAt_ = 0L;
      endedAt_ = 0L;
      crashed_ = false;
      analyzer_ = 0;
      generatorType_ =
          com.google.firebase.crashlytics.device.session.Crashlytics.GeneratorType.IOS_SDK;
      frameDecoder_ =
          com.google.firebase.crashlytics.device.session.Crashlytics.FrameDecoder.SYMBOLICATION;
      internalData_ =
          com.google.firebase.crashlytics.device.session.Crashlytics.InternalData
              .getDefaultInstance();
      user_ =
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.User
              .getDefaultInstance();
      app_ =
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
              .getDefaultInstance();
      os_ =
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem
              .getDefaultInstance();
      device_ =
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
              .getDefaultInstance();
      events_ = java.util.Collections.emptyList();
    }

    private byte memoizedIsInitialized = -1;

    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasGenerator()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasIdentifier()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasStartedAt()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasApp()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasUser()) {
        if (!getUser().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (!getApp().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasOs()) {
        if (!getOs().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasDevice()) {
        if (!getDevice().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getEventsCount(); i++) {
        if (!getEvents(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getGeneratorBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, identifier_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt64(3, startedAt_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt64(4, endedAt_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBool(5, crashed_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeMessage(6, user_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeMessage(7, app_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        output.writeMessage(8, os_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        output.writeMessage(9, device_);
      }
      for (int i = 0; i < events_.size(); i++) {
        output.writeMessage(10, events_.get(i));
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(11, analyzer_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeEnum(12, generatorType_.getNumber());
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeEnum(13, frameDecoder_.getNumber());
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeMessage(14, internalData_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;

    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeBytesSize(1, getGeneratorBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeBytesSize(2, identifier_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeUInt64Size(3, startedAt_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeUInt64Size(4, endedAt_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(5, crashed_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, user_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, app_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(8, os_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(9, device_);
      }
      for (int i = 0; i < events_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(10, events_.get(i));
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream.computeUInt32Size(11, analyzer_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size +=
            com.google.protobuf.CodedOutputStream.computeEnumSize(12, generatorType_.getNumber());
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size +=
            com.google.protobuf.CodedOutputStream.computeEnumSize(13, frameDecoder_.getNumber());
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(14, internalData_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;

    @java.lang.Override
    protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.google.firebase.crashlytics.device.session.Crashlytics.Session parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }

    public static com.google.firebase.crashlytics.device.session.Crashlytics.Session parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
    }

    public static com.google.firebase.crashlytics.device.session.Crashlytics.Session parseFrom(
        byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }

    public static com.google.firebase.crashlytics.device.session.Crashlytics.Session parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry).buildParsed();
    }

    public static com.google.firebase.crashlytics.device.session.Crashlytics.Session parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }

    public static com.google.firebase.crashlytics.device.session.Crashlytics.Session parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
    }

    public static com.google.firebase.crashlytics.device.session.Crashlytics.Session
        parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }

    public static com.google.firebase.crashlytics.device.session.Crashlytics.Session
        parseDelimitedFrom(
            java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }

    public static com.google.firebase.crashlytics.device.session.Crashlytics.Session parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }

    public static com.google.firebase.crashlytics.device.session.Crashlytics.Session parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry).buildParsed();
    }

    public static Builder newBuilder() {
      return Builder.create();
    }

    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder(
        com.google.firebase.crashlytics.device.session.Crashlytics.Session prototype) {
      return newBuilder().mergeFrom(prototype);
    }

    public Builder toBuilder() {
      return newBuilder(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder<Builder>
        implements com.google.firebase.crashlytics.device.session.Crashlytics.SessionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return com.google.firebase.crashlytics.device.session.Crashlytics
            .internal_static_Crashlytics_Session_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.firebase.crashlytics.device.session.Crashlytics
            .internal_static_Crashlytics_Session_fieldAccessorTable;
      }

      // Construct using
      // com.google.firebase.crashlytics.device.session.Crashlytics.Session.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getInternalDataFieldBuilder();
          getUserFieldBuilder();
          getAppFieldBuilder();
          getOsFieldBuilder();
          getDeviceFieldBuilder();
          getEventsFieldBuilder();
        }
      }

      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        generator_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        identifier_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        startedAt_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000004);
        endedAt_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        crashed_ = false;
        bitField0_ = (bitField0_ & ~0x00000010);
        analyzer_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        generatorType_ =
            com.google.firebase.crashlytics.device.session.Crashlytics.GeneratorType.IOS_SDK;
        bitField0_ = (bitField0_ & ~0x00000040);
        frameDecoder_ =
            com.google.firebase.crashlytics.device.session.Crashlytics.FrameDecoder.SYMBOLICATION;
        bitField0_ = (bitField0_ & ~0x00000080);
        if (internalDataBuilder_ == null) {
          internalData_ =
              com.google.firebase.crashlytics.device.session.Crashlytics.InternalData
                  .getDefaultInstance();
        } else {
          internalDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        if (userBuilder_ == null) {
          user_ =
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.User
                  .getDefaultInstance();
        } else {
          userBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000200);
        if (appBuilder_ == null) {
          app_ =
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                  .getDefaultInstance();
        } else {
          appBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000400);
        if (osBuilder_ == null) {
          os_ =
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem
                  .getDefaultInstance();
        } else {
          osBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000800);
        if (deviceBuilder_ == null) {
          device_ =
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                  .getDefaultInstance();
        } else {
          deviceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00001000);
        if (eventsBuilder_ == null) {
          events_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00002000);
        } else {
          eventsBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return com.google.firebase.crashlytics.device.session.Crashlytics.Session.getDescriptor();
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session
          getDefaultInstanceForType() {
        return com.google.firebase.crashlytics.device.session.Crashlytics.Session
            .getDefaultInstance();
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session build() {
        com.google.firebase.crashlytics.device.session.Crashlytics.Session result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      private com.google.firebase.crashlytics.device.session.Crashlytics.Session buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        com.google.firebase.crashlytics.device.session.Crashlytics.Session result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result).asInvalidProtocolBufferException();
        }
        return result;
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session buildPartial() {
        com.google.firebase.crashlytics.device.session.Crashlytics.Session result =
            new com.google.firebase.crashlytics.device.session.Crashlytics.Session(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.generator_ = generator_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.identifier_ = identifier_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.startedAt_ = startedAt_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.endedAt_ = endedAt_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.crashed_ = crashed_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.analyzer_ = analyzer_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.generatorType_ = generatorType_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.frameDecoder_ = frameDecoder_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        if (internalDataBuilder_ == null) {
          result.internalData_ = internalData_;
        } else {
          result.internalData_ = internalDataBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        if (userBuilder_ == null) {
          result.user_ = user_;
        } else {
          result.user_ = userBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000400;
        }
        if (appBuilder_ == null) {
          result.app_ = app_;
        } else {
          result.app_ = appBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000800;
        }
        if (osBuilder_ == null) {
          result.os_ = os_;
        } else {
          result.os_ = osBuilder_.build();
        }
        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
          to_bitField0_ |= 0x00001000;
        }
        if (deviceBuilder_ == null) {
          result.device_ = device_;
        } else {
          result.device_ = deviceBuilder_.build();
        }
        if (eventsBuilder_ == null) {
          if (((bitField0_ & 0x00002000) == 0x00002000)) {
            events_ = java.util.Collections.unmodifiableList(events_);
            bitField0_ = (bitField0_ & ~0x00002000);
          }
          result.events_ = events_;
        } else {
          result.events_ = eventsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.firebase.crashlytics.device.session.Crashlytics.Session) {
          return mergeFrom(
              (com.google.firebase.crashlytics.device.session.Crashlytics.Session) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(
          com.google.firebase.crashlytics.device.session.Crashlytics.Session other) {
        if (other
            == com.google.firebase.crashlytics.device.session.Crashlytics.Session
                .getDefaultInstance()) return this;
        if (other.hasGenerator()) {
          setGenerator(other.getGenerator());
        }
        if (other.hasIdentifier()) {
          setIdentifier(other.getIdentifier());
        }
        if (other.hasStartedAt()) {
          setStartedAt(other.getStartedAt());
        }
        if (other.hasEndedAt()) {
          setEndedAt(other.getEndedAt());
        }
        if (other.hasCrashed()) {
          setCrashed(other.getCrashed());
        }
        if (other.hasAnalyzer()) {
          setAnalyzer(other.getAnalyzer());
        }
        if (other.hasGeneratorType()) {
          setGeneratorType(other.getGeneratorType());
        }
        if (other.hasFrameDecoder()) {
          setFrameDecoder(other.getFrameDecoder());
        }
        if (other.hasInternalData()) {
          mergeInternalData(other.getInternalData());
        }
        if (other.hasUser()) {
          mergeUser(other.getUser());
        }
        if (other.hasApp()) {
          mergeApp(other.getApp());
        }
        if (other.hasOs()) {
          mergeOs(other.getOs());
        }
        if (other.hasDevice()) {
          mergeDevice(other.getDevice());
        }
        if (eventsBuilder_ == null) {
          if (!other.events_.isEmpty()) {
            if (events_.isEmpty()) {
              events_ = other.events_;
              bitField0_ = (bitField0_ & ~0x00002000);
            } else {
              ensureEventsIsMutable();
              events_.addAll(other.events_);
            }
            onChanged();
          }
        } else {
          if (!other.events_.isEmpty()) {
            if (eventsBuilder_.isEmpty()) {
              eventsBuilder_.dispose();
              eventsBuilder_ = null;
              events_ = other.events_;
              bitField0_ = (bitField0_ & ~0x00002000);
              eventsBuilder_ =
                  com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders
                      ? getEventsFieldBuilder()
                      : null;
            } else {
              eventsBuilder_.addAllMessages(other.events_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasGenerator()) {

          return false;
        }
        if (!hasIdentifier()) {

          return false;
        }
        if (!hasStartedAt()) {

          return false;
        }
        if (!hasApp()) {

          return false;
        }
        if (hasUser()) {
          if (!getUser().isInitialized()) {

            return false;
          }
        }
        if (!getApp().isInitialized()) {

          return false;
        }
        if (hasOs()) {
          if (!getOs().isInitialized()) {

            return false;
          }
        }
        if (hasDevice()) {
          if (!getDevice().isInitialized()) {

            return false;
          }
        }
        for (int i = 0; i < getEventsCount(); i++) {
          if (!getEvents(i).isInitialized()) {

            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default:
              {
                if (!parseUnknownField(
                    input, unknownFields,
                    extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                }
                break;
              }
            case 10:
              {
                bitField0_ |= 0x00000001;
                generator_ = input.readBytes();
                break;
              }
            case 18:
              {
                bitField0_ |= 0x00000002;
                identifier_ = input.readBytes();
                break;
              }
            case 24:
              {
                bitField0_ |= 0x00000004;
                startedAt_ = input.readUInt64();
                break;
              }
            case 32:
              {
                bitField0_ |= 0x00000008;
                endedAt_ = input.readUInt64();
                break;
              }
            case 40:
              {
                bitField0_ |= 0x00000010;
                crashed_ = input.readBool();
                break;
              }
            case 50:
              {
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.User.Builder
                    subBuilder =
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.User
                            .newBuilder();
                if (hasUser()) {
                  subBuilder.mergeFrom(getUser());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setUser(subBuilder.buildPartial());
                break;
              }
            case 58:
              {
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                        .Builder
                    subBuilder =
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session
                            .Application.newBuilder();
                if (hasApp()) {
                  subBuilder.mergeFrom(getApp());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setApp(subBuilder.buildPartial());
                break;
              }
            case 66:
              {
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem
                        .Builder
                    subBuilder =
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session
                            .OperatingSystem.newBuilder();
                if (hasOs()) {
                  subBuilder.mergeFrom(getOs());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setOs(subBuilder.buildPartial());
                break;
              }
            case 74:
              {
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.Builder
                    subBuilder =
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                            .newBuilder();
                if (hasDevice()) {
                  subBuilder.mergeFrom(getDevice());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setDevice(subBuilder.buildPartial());
                break;
              }
            case 82:
              {
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Builder
                    subBuilder =
                        com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                            .newBuilder();
                input.readMessage(subBuilder, extensionRegistry);
                addEvents(subBuilder.buildPartial());
                break;
              }
            case 88:
              {
                bitField0_ |= 0x00000020;
                analyzer_ = input.readUInt32();
                break;
              }
            case 96:
              {
                int rawValue = input.readEnum();
                com.google.firebase.crashlytics.device.session.Crashlytics.GeneratorType value =
                    com.google.firebase.crashlytics.device.session.Crashlytics.GeneratorType
                        .valueOf(rawValue);
                if (value == null) {
                  unknownFields.mergeVarintField(12, rawValue);
                } else {
                  bitField0_ |= 0x00000040;
                  generatorType_ = value;
                }
                break;
              }
            case 104:
              {
                int rawValue = input.readEnum();
                com.google.firebase.crashlytics.device.session.Crashlytics.FrameDecoder value =
                    com.google.firebase.crashlytics.device.session.Crashlytics.FrameDecoder.valueOf(
                        rawValue);
                if (value == null) {
                  unknownFields.mergeVarintField(13, rawValue);
                } else {
                  bitField0_ |= 0x00000080;
                  frameDecoder_ = value;
                }
                break;
              }
            case 114:
              {
                com.google.firebase.crashlytics.device.session.Crashlytics.InternalData.Builder
                    subBuilder =
                        com.google.firebase.crashlytics.device.session.Crashlytics.InternalData
                            .newBuilder();
                if (hasInternalData()) {
                  subBuilder.mergeFrom(getInternalData());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setInternalData(subBuilder.buildPartial());
                break;
              }
          }
        }
      }

      private int bitField0_;

      // required string generator = 1;
      private java.lang.Object generator_ = "";

      public boolean hasGenerator() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }

      public String getGenerator() {
        java.lang.Object ref = generator_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          generator_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }

      public Builder setGenerator(String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        generator_ = value;
        onChanged();
        return this;
      }

      public Builder clearGenerator() {
        bitField0_ = (bitField0_ & ~0x00000001);
        generator_ = getDefaultInstance().getGenerator();
        onChanged();
        return this;
      }

      void setGenerator(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000001;
        generator_ = value;
        onChanged();
      }

      // required bytes identifier = 2;
      private com.google.protobuf.ByteString identifier_ = com.google.protobuf.ByteString.EMPTY;

      public boolean hasIdentifier() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }

      public com.google.protobuf.ByteString getIdentifier() {
        return identifier_;
      }

      public Builder setIdentifier(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        identifier_ = value;
        onChanged();
        return this;
      }

      public Builder clearIdentifier() {
        bitField0_ = (bitField0_ & ~0x00000002);
        identifier_ = getDefaultInstance().getIdentifier();
        onChanged();
        return this;
      }

      // required uint64 started_at = 3;
      private long startedAt_;

      public boolean hasStartedAt() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }

      public long getStartedAt() {
        return startedAt_;
      }

      public Builder setStartedAt(long value) {
        bitField0_ |= 0x00000004;
        startedAt_ = value;
        onChanged();
        return this;
      }

      public Builder clearStartedAt() {
        bitField0_ = (bitField0_ & ~0x00000004);
        startedAt_ = 0L;
        onChanged();
        return this;
      }

      // optional uint64 ended_at = 4;
      private long endedAt_;

      public boolean hasEndedAt() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }

      public long getEndedAt() {
        return endedAt_;
      }

      public Builder setEndedAt(long value) {
        bitField0_ |= 0x00000008;
        endedAt_ = value;
        onChanged();
        return this;
      }

      public Builder clearEndedAt() {
        bitField0_ = (bitField0_ & ~0x00000008);
        endedAt_ = 0L;
        onChanged();
        return this;
      }

      // optional bool crashed = 5;
      private boolean crashed_;

      public boolean hasCrashed() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }

      public boolean getCrashed() {
        return crashed_;
      }

      public Builder setCrashed(boolean value) {
        bitField0_ |= 0x00000010;
        crashed_ = value;
        onChanged();
        return this;
      }

      public Builder clearCrashed() {
        bitField0_ = (bitField0_ & ~0x00000010);
        crashed_ = false;
        onChanged();
        return this;
      }

      // optional uint32 analyzer = 11;
      private int analyzer_;

      public boolean hasAnalyzer() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }

      public int getAnalyzer() {
        return analyzer_;
      }

      public Builder setAnalyzer(int value) {
        bitField0_ |= 0x00000020;
        analyzer_ = value;
        onChanged();
        return this;
      }

      public Builder clearAnalyzer() {
        bitField0_ = (bitField0_ & ~0x00000020);
        analyzer_ = 0;
        onChanged();
        return this;
      }

      // optional .Crashlytics.GeneratorType generator_type = 12;
      private com.google.firebase.crashlytics.device.session.Crashlytics.GeneratorType
          generatorType_ =
              com.google.firebase.crashlytics.device.session.Crashlytics.GeneratorType.IOS_SDK;

      public boolean hasGeneratorType() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.GeneratorType
          getGeneratorType() {
        return generatorType_;
      }

      public Builder setGeneratorType(
          com.google.firebase.crashlytics.device.session.Crashlytics.GeneratorType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000040;
        generatorType_ = value;
        onChanged();
        return this;
      }

      public Builder clearGeneratorType() {
        bitField0_ = (bitField0_ & ~0x00000040);
        generatorType_ =
            com.google.firebase.crashlytics.device.session.Crashlytics.GeneratorType.IOS_SDK;
        onChanged();
        return this;
      }

      // optional .Crashlytics.FrameDecoder frame_decoder = 13;
      private com.google.firebase.crashlytics.device.session.Crashlytics.FrameDecoder
          frameDecoder_ =
              com.google.firebase.crashlytics.device.session.Crashlytics.FrameDecoder.SYMBOLICATION;

      public boolean hasFrameDecoder() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.FrameDecoder
          getFrameDecoder() {
        return frameDecoder_;
      }

      public Builder setFrameDecoder(
          com.google.firebase.crashlytics.device.session.Crashlytics.FrameDecoder value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000080;
        frameDecoder_ = value;
        onChanged();
        return this;
      }

      public Builder clearFrameDecoder() {
        bitField0_ = (bitField0_ & ~0x00000080);
        frameDecoder_ =
            com.google.firebase.crashlytics.device.session.Crashlytics.FrameDecoder.SYMBOLICATION;
        onChanged();
        return this;
      }

      // optional .Crashlytics.InternalData internal_data = 14;
      private com.google.firebase.crashlytics.device.session.Crashlytics.InternalData
          internalData_ =
              com.google.firebase.crashlytics.device.session.Crashlytics.InternalData
                  .getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
              com.google.firebase.crashlytics.device.session.Crashlytics.InternalData,
              com.google.firebase.crashlytics.device.session.Crashlytics.InternalData.Builder,
              com.google.firebase.crashlytics.device.session.Crashlytics.InternalDataOrBuilder>
          internalDataBuilder_;

      public boolean hasInternalData() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.InternalData
          getInternalData() {
        if (internalDataBuilder_ == null) {
          return internalData_;
        } else {
          return internalDataBuilder_.getMessage();
        }
      }

      public Builder setInternalData(
          com.google.firebase.crashlytics.device.session.Crashlytics.InternalData value) {
        if (internalDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          internalData_ = value;
          onChanged();
        } else {
          internalDataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }

      public Builder setInternalData(
          com.google.firebase.crashlytics.device.session.Crashlytics.InternalData.Builder
              builderForValue) {
        if (internalDataBuilder_ == null) {
          internalData_ = builderForValue.build();
          onChanged();
        } else {
          internalDataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000100;
        return this;
      }

      public Builder mergeInternalData(
          com.google.firebase.crashlytics.device.session.Crashlytics.InternalData value) {
        if (internalDataBuilder_ == null) {
          if (((bitField0_ & 0x00000100) == 0x00000100)
              && internalData_
                  != com.google.firebase.crashlytics.device.session.Crashlytics.InternalData
                      .getDefaultInstance()) {
            internalData_ =
                com.google.firebase.crashlytics.device.session.Crashlytics.InternalData.newBuilder(
                        internalData_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            internalData_ = value;
          }
          onChanged();
        } else {
          internalDataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }

      public Builder clearInternalData() {
        if (internalDataBuilder_ == null) {
          internalData_ =
              com.google.firebase.crashlytics.device.session.Crashlytics.InternalData
                  .getDefaultInstance();
          onChanged();
        } else {
          internalDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.InternalData.Builder
          getInternalDataBuilder() {
        bitField0_ |= 0x00000100;
        onChanged();
        return getInternalDataFieldBuilder().getBuilder();
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.InternalDataOrBuilder
          getInternalDataOrBuilder() {
        if (internalDataBuilder_ != null) {
          return internalDataBuilder_.getMessageOrBuilder();
        } else {
          return internalData_;
        }
      }

      private com.google.protobuf.SingleFieldBuilder<
              com.google.firebase.crashlytics.device.session.Crashlytics.InternalData,
              com.google.firebase.crashlytics.device.session.Crashlytics.InternalData.Builder,
              com.google.firebase.crashlytics.device.session.Crashlytics.InternalDataOrBuilder>
          getInternalDataFieldBuilder() {
        if (internalDataBuilder_ == null) {
          internalDataBuilder_ =
              new com.google.protobuf.SingleFieldBuilder<
                  com.google.firebase.crashlytics.device.session.Crashlytics.InternalData,
                  com.google.firebase.crashlytics.device.session.Crashlytics.InternalData.Builder,
                  com.google.firebase.crashlytics.device.session.Crashlytics.InternalDataOrBuilder>(
                  internalData_, getParentForChildren(), isClean());
          internalData_ = null;
        }
        return internalDataBuilder_;
      }

      // optional .Crashlytics.Session.User user = 6;
      private com.google.firebase.crashlytics.device.session.Crashlytics.Session.User user_ =
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.User
              .getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.User,
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.User.Builder,
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.UserOrBuilder>
          userBuilder_;

      public boolean hasUser() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session.User getUser() {
        if (userBuilder_ == null) {
          return user_;
        } else {
          return userBuilder_.getMessage();
        }
      }

      public Builder setUser(
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.User value) {
        if (userBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          user_ = value;
          onChanged();
        } else {
          userBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000200;
        return this;
      }

      public Builder setUser(
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.User.Builder
              builderForValue) {
        if (userBuilder_ == null) {
          user_ = builderForValue.build();
          onChanged();
        } else {
          userBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000200;
        return this;
      }

      public Builder mergeUser(
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.User value) {
        if (userBuilder_ == null) {
          if (((bitField0_ & 0x00000200) == 0x00000200)
              && user_
                  != com.google.firebase.crashlytics.device.session.Crashlytics.Session.User
                      .getDefaultInstance()) {
            user_ =
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.User.newBuilder(
                        user_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            user_ = value;
          }
          onChanged();
        } else {
          userBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000200;
        return this;
      }

      public Builder clearUser() {
        if (userBuilder_ == null) {
          user_ =
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.User
                  .getDefaultInstance();
          onChanged();
        } else {
          userBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000200);
        return this;
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session.User.Builder
          getUserBuilder() {
        bitField0_ |= 0x00000200;
        onChanged();
        return getUserFieldBuilder().getBuilder();
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session.UserOrBuilder
          getUserOrBuilder() {
        if (userBuilder_ != null) {
          return userBuilder_.getMessageOrBuilder();
        } else {
          return user_;
        }
      }

      private com.google.protobuf.SingleFieldBuilder<
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.User,
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.User.Builder,
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.UserOrBuilder>
          getUserFieldBuilder() {
        if (userBuilder_ == null) {
          userBuilder_ =
              new com.google.protobuf.SingleFieldBuilder<
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.User,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.User.Builder,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.UserOrBuilder>(
                  user_, getParentForChildren(), isClean());
          user_ = null;
        }
        return userBuilder_;
      }

      // required .Crashlytics.Session.Application app = 7;
      private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application app_ =
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
              .getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application,
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                  .Builder,
              com.google.firebase.crashlytics.device.session.Crashlytics.Session
                  .ApplicationOrBuilder>
          appBuilder_;

      public boolean hasApp() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
          getApp() {
        if (appBuilder_ == null) {
          return app_;
        } else {
          return appBuilder_.getMessage();
        }
      }

      public Builder setApp(
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application value) {
        if (appBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          app_ = value;
          onChanged();
        } else {
          appBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000400;
        return this;
      }

      public Builder setApp(
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application.Builder
              builderForValue) {
        if (appBuilder_ == null) {
          app_ = builderForValue.build();
          onChanged();
        } else {
          appBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000400;
        return this;
      }

      public Builder mergeApp(
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application value) {
        if (appBuilder_ == null) {
          if (((bitField0_ & 0x00000400) == 0x00000400)
              && app_
                  != com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                      .getDefaultInstance()) {
            app_ =
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                    .newBuilder(app_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            app_ = value;
          }
          onChanged();
        } else {
          appBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000400;
        return this;
      }

      public Builder clearApp() {
        if (appBuilder_ == null) {
          app_ =
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                  .getDefaultInstance();
          onChanged();
        } else {
          appBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000400);
        return this;
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application.Builder
          getAppBuilder() {
        bitField0_ |= 0x00000400;
        onChanged();
        return getAppFieldBuilder().getBuilder();
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session.ApplicationOrBuilder
          getAppOrBuilder() {
        if (appBuilder_ != null) {
          return appBuilder_.getMessageOrBuilder();
        } else {
          return app_;
        }
      }

      private com.google.protobuf.SingleFieldBuilder<
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application,
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                  .Builder,
              com.google.firebase.crashlytics.device.session.Crashlytics.Session
                  .ApplicationOrBuilder>
          getAppFieldBuilder() {
        if (appBuilder_ == null) {
          appBuilder_ =
              new com.google.protobuf.SingleFieldBuilder<
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                      .Builder,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session
                      .ApplicationOrBuilder>(app_, getParentForChildren(), isClean());
          app_ = null;
        }
        return appBuilder_;
      }

      // optional .Crashlytics.Session.OperatingSystem os = 8;
      private com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem
          os_ =
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem
                  .getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem,
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem
                  .Builder,
              com.google.firebase.crashlytics.device.session.Crashlytics.Session
                  .OperatingSystemOrBuilder>
          osBuilder_;

      public boolean hasOs() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem
          getOs() {
        if (osBuilder_ == null) {
          return os_;
        } else {
          return osBuilder_.getMessage();
        }
      }

      public Builder setOs(
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem
              value) {
        if (osBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          os_ = value;
          onChanged();
        } else {
          osBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000800;
        return this;
      }

      public Builder setOs(
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem.Builder
              builderForValue) {
        if (osBuilder_ == null) {
          os_ = builderForValue.build();
          onChanged();
        } else {
          osBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000800;
        return this;
      }

      public Builder mergeOs(
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem
              value) {
        if (osBuilder_ == null) {
          if (((bitField0_ & 0x00000800) == 0x00000800)
              && os_
                  != com.google.firebase.crashlytics.device.session.Crashlytics.Session
                      .OperatingSystem.getDefaultInstance()) {
            os_ =
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem
                    .newBuilder(os_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            os_ = value;
          }
          onChanged();
        } else {
          osBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000800;
        return this;
      }

      public Builder clearOs() {
        if (osBuilder_ == null) {
          os_ =
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem
                  .getDefaultInstance();
          onChanged();
        } else {
          osBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000800);
        return this;
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem
              .Builder
          getOsBuilder() {
        bitField0_ |= 0x00000800;
        onChanged();
        return getOsFieldBuilder().getBuilder();
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session
              .OperatingSystemOrBuilder
          getOsOrBuilder() {
        if (osBuilder_ != null) {
          return osBuilder_.getMessageOrBuilder();
        } else {
          return os_;
        }
      }

      private com.google.protobuf.SingleFieldBuilder<
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem,
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem
                  .Builder,
              com.google.firebase.crashlytics.device.session.Crashlytics.Session
                  .OperatingSystemOrBuilder>
          getOsFieldBuilder() {
        if (osBuilder_ == null) {
          osBuilder_ =
              new com.google.protobuf.SingleFieldBuilder<
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session
                      .OperatingSystem,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.OperatingSystem
                      .Builder,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session
                      .OperatingSystemOrBuilder>(os_, getParentForChildren(), isClean());
          os_ = null;
        }
        return osBuilder_;
      }

      // optional .Crashlytics.Session.Device device = 9;
      private com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device device_ =
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
              .getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device,
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.Builder,
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.DeviceOrBuilder>
          deviceBuilder_;

      public boolean hasDevice() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device getDevice() {
        if (deviceBuilder_ == null) {
          return device_;
        } else {
          return deviceBuilder_.getMessage();
        }
      }

      public Builder setDevice(
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device value) {
        if (deviceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          device_ = value;
          onChanged();
        } else {
          deviceBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00001000;
        return this;
      }

      public Builder setDevice(
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.Builder
              builderForValue) {
        if (deviceBuilder_ == null) {
          device_ = builderForValue.build();
          onChanged();
        } else {
          deviceBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00001000;
        return this;
      }

      public Builder mergeDevice(
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device value) {
        if (deviceBuilder_ == null) {
          if (((bitField0_ & 0x00001000) == 0x00001000)
              && device_
                  != com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                      .getDefaultInstance()) {
            device_ =
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                    .newBuilder(device_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            device_ = value;
          }
          onChanged();
        } else {
          deviceBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00001000;
        return this;
      }

      public Builder clearDevice() {
        if (deviceBuilder_ == null) {
          device_ =
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                  .getDefaultInstance();
          onChanged();
        } else {
          deviceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00001000);
        return this;
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.Builder
          getDeviceBuilder() {
        bitField0_ |= 0x00001000;
        onChanged();
        return getDeviceFieldBuilder().getBuilder();
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session.DeviceOrBuilder
          getDeviceOrBuilder() {
        if (deviceBuilder_ != null) {
          return deviceBuilder_.getMessageOrBuilder();
        } else {
          return device_;
        }
      }

      private com.google.protobuf.SingleFieldBuilder<
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device,
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.Builder,
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.DeviceOrBuilder>
          getDeviceFieldBuilder() {
        if (deviceBuilder_ == null) {
          deviceBuilder_ =
              new com.google.protobuf.SingleFieldBuilder<
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.Builder,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session
                      .DeviceOrBuilder>(device_, getParentForChildren(), isClean());
          device_ = null;
        }
        return deviceBuilder_;
      }

      // repeated .Crashlytics.Session.Event events = 10;
      private java.util.List<
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event>
          events_ = java.util.Collections.emptyList();

      private void ensureEventsIsMutable() {
        if (!((bitField0_ & 0x00002000) == 0x00002000)) {
          events_ =
              new java.util.ArrayList<
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event>(
                  events_);
          bitField0_ |= 0x00002000;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event,
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Builder,
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.EventOrBuilder>
          eventsBuilder_;

      public java.util.List<
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event>
          getEventsList() {
        if (eventsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(events_);
        } else {
          return eventsBuilder_.getMessageList();
        }
      }

      public int getEventsCount() {
        if (eventsBuilder_ == null) {
          return events_.size();
        } else {
          return eventsBuilder_.getCount();
        }
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event getEvents(
          int index) {
        if (eventsBuilder_ == null) {
          return events_.get(index);
        } else {
          return eventsBuilder_.getMessage(index);
        }
      }

      public Builder setEvents(
          int index,
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event value) {
        if (eventsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEventsIsMutable();
          events_.set(index, value);
          onChanged();
        } else {
          eventsBuilder_.setMessage(index, value);
        }
        return this;
      }

      public Builder setEvents(
          int index,
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Builder
              builderForValue) {
        if (eventsBuilder_ == null) {
          ensureEventsIsMutable();
          events_.set(index, builderForValue.build());
          onChanged();
        } else {
          eventsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }

      public Builder addEvents(
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event value) {
        if (eventsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEventsIsMutable();
          events_.add(value);
          onChanged();
        } else {
          eventsBuilder_.addMessage(value);
        }
        return this;
      }

      public Builder addEvents(
          int index,
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event value) {
        if (eventsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEventsIsMutable();
          events_.add(index, value);
          onChanged();
        } else {
          eventsBuilder_.addMessage(index, value);
        }
        return this;
      }

      public Builder addEvents(
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Builder
              builderForValue) {
        if (eventsBuilder_ == null) {
          ensureEventsIsMutable();
          events_.add(builderForValue.build());
          onChanged();
        } else {
          eventsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }

      public Builder addEvents(
          int index,
          com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Builder
              builderForValue) {
        if (eventsBuilder_ == null) {
          ensureEventsIsMutable();
          events_.add(index, builderForValue.build());
          onChanged();
        } else {
          eventsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }

      public Builder addAllEvents(
          java.lang.Iterable<
                  ? extends
                      com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event>
              values) {
        if (eventsBuilder_ == null) {
          ensureEventsIsMutable();
          super.addAll(values, events_);
          onChanged();
        } else {
          eventsBuilder_.addAllMessages(values);
        }
        return this;
      }

      public Builder clearEvents() {
        if (eventsBuilder_ == null) {
          events_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00002000);
          onChanged();
        } else {
          eventsBuilder_.clear();
        }
        return this;
      }

      public Builder removeEvents(int index) {
        if (eventsBuilder_ == null) {
          ensureEventsIsMutable();
          events_.remove(index);
          onChanged();
        } else {
          eventsBuilder_.remove(index);
        }
        return this;
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Builder
          getEventsBuilder(int index) {
        return getEventsFieldBuilder().getBuilder(index);
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session.EventOrBuilder
          getEventsOrBuilder(int index) {
        if (eventsBuilder_ == null) {
          return events_.get(index);
        } else {
          return eventsBuilder_.getMessageOrBuilder(index);
        }
      }

      public java.util.List<
              ? extends
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.EventOrBuilder>
          getEventsOrBuilderList() {
        if (eventsBuilder_ != null) {
          return eventsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(events_);
        }
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Builder
          addEventsBuilder() {
        return getEventsFieldBuilder()
            .addBuilder(
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .getDefaultInstance());
      }

      public com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Builder
          addEventsBuilder(int index) {
        return getEventsFieldBuilder()
            .addBuilder(
                index,
                com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                    .getDefaultInstance());
      }

      public java.util.List<
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Builder>
          getEventsBuilderList() {
        return getEventsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilder<
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event,
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Builder,
              com.google.firebase.crashlytics.device.session.Crashlytics.Session.EventOrBuilder>
          getEventsFieldBuilder() {
        if (eventsBuilder_ == null) {
          eventsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilder<
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Builder,
                  com.google.firebase.crashlytics.device.session.Crashlytics.Session
                      .EventOrBuilder>(
                  events_,
                  ((bitField0_ & 0x00002000) == 0x00002000),
                  getParentForChildren(),
                  isClean());
          events_ = null;
        }
        return eventsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:Crashlytics.Session)
    }

    static {
      defaultInstance = new Session(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:Crashlytics.Session)
  }

  private static com.google.protobuf.Descriptors.Descriptor
      internal_static_Crashlytics_CustomAttribute_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Crashlytics_CustomAttribute_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
      internal_static_Crashlytics_InternalData_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Crashlytics_InternalData_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
      internal_static_Crashlytics_Session_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Crashlytics_Session_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
      internal_static_Crashlytics_Session_User_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Crashlytics_Session_User_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
      internal_static_Crashlytics_Session_Application_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Crashlytics_Session_Application_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
      internal_static_Crashlytics_Session_Application_Process_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Crashlytics_Session_Application_Process_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
      internal_static_Crashlytics_Session_Application_Organization_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Crashlytics_Session_Application_Organization_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
      internal_static_Crashlytics_Session_OperatingSystem_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Crashlytics_Session_OperatingSystem_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
      internal_static_Crashlytics_Session_Device_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Crashlytics_Session_Device_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
      internal_static_Crashlytics_Session_Device_Identifier_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Crashlytics_Session_Device_Identifier_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
      internal_static_Crashlytics_Session_Event_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Crashlytics_Session_Event_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
      internal_static_Crashlytics_Session_Event_Application_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Crashlytics_Session_Event_Application_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
      internal_static_Crashlytics_Session_Event_Application_Execution_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Crashlytics_Session_Event_Application_Execution_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
      internal_static_Crashlytics_Session_Event_Application_Execution_Thread_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Crashlytics_Session_Event_Application_Execution_Thread_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
      internal_static_Crashlytics_Session_Event_Application_Execution_Thread_Frame_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Crashlytics_Session_Event_Application_Execution_Thread_Frame_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
      internal_static_Crashlytics_Session_Event_Application_Execution_Thread_Register_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Crashlytics_Session_Event_Application_Execution_Thread_Register_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
      internal_static_Crashlytics_Session_Event_Application_Execution_Exception_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Crashlytics_Session_Event_Application_Execution_Exception_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
      internal_static_Crashlytics_Session_Event_Application_Execution_Signal_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Crashlytics_Session_Event_Application_Execution_Signal_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
      internal_static_Crashlytics_Session_Event_Application_Execution_BinaryImage_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Crashlytics_Session_Event_Application_Execution_BinaryImage_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
      internal_static_Crashlytics_Session_Event_OperatingSystem_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Crashlytics_Session_Event_OperatingSystem_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
      internal_static_Crashlytics_Session_Event_OperatingSystem_NetworkInterface_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Crashlytics_Session_Event_OperatingSystem_NetworkInterface_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
      internal_static_Crashlytics_Session_Event_OperatingSystem_NetworkInterface_Connection_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Crashlytics_Session_Event_OperatingSystem_NetworkInterface_Connection_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
      internal_static_Crashlytics_Session_Event_Device_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Crashlytics_Session_Event_Device_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
      internal_static_Crashlytics_Session_Event_Log_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Crashlytics_Session_Event_Log_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
    return descriptor;
  }

  private static com.google.protobuf.Descriptors.FileDescriptor descriptor;

  static {
    java.lang.String[] descriptorData = {
      "\n\021crashlytics.proto\022\013Crashlytics\"-\n\017Cust"
          + "omAttribute\022\013\n\003key\030\001 \002(\t\022\r\n\005value\030\002 \002(\t\""
          + "\"\n\014InternalData\022\022\n\nproject_id\030\001 \001(\t\"\262 \n\007"
          + "Session\022\021\n\tgenerator\030\001 \002(\t\022\022\n\nidentifier"
          + "\030\002 \002(\014\022\022\n\nstarted_at\030\003 \002(\004\022\020\n\010ended_at\030\004"
          + " \001(\004\022\017\n\007crashed\030\005 \001(\010\022\020\n\010analyzer\030\013 \001(\r\022"
          + "2\n\016generator_type\030\014 \001(\0162\032.Crashlytics.Ge"
          + "neratorType\0220\n\rframe_decoder\030\r \001(\0162\031.Cra"
          + "shlytics.FrameDecoder\0220\n\rinternal_data\030\016"
          + " \001(\0132\031.Crashlytics.InternalData\022\'\n\004user\030",
      "\006 \001(\0132\031.Crashlytics.Session.User\022-\n\003app\030"
          + "\007 \002(\0132 .Crashlytics.Session.Application\022"
          + "0\n\002os\030\010 \001(\0132$.Crashlytics.Session.Operat"
          + "ingSystem\022+\n\006device\030\t \001(\0132\033.Crashlytics."
          + "Session.Device\022*\n\006events\030\n \003(\0132\032.Crashly"
          + "tics.Session.Event\032p\n\004User\022\022\n\nidentifier"
          + "\030\001 \002(\t\022\014\n\004name\030\002 \001(\t\022\r\n\005email\030\003 \001(\t\0227\n\021c"
          + "ustom_attributes\030\004 \003(\0132\034.Crashlytics.Cus"
          + "tomAttribute\032\223\004\n\013Application\022\022\n\nidentifi"
          + "er\030\001 \002(\t\022\017\n\007version\030\002 \002(\t\022\027\n\017display_ver",
      "sion\030\003 \001(\t\022\031\n\021installation_uuid\030\006 \001(\t\022\016\n"
          + "\006cls_id\030\007 \001(\t\022\034\n\024development_platform\030\010 "
          + "\001(\t\022$\n\034development_platform_version\030\t \001("
          + "\t\022:\n\022delivery_mechanism\030\n \001(\0162\036.Crashlyt"
          + "ics.DeliveryMechanism\0229\n\007process\030\004 \001(\0132("
          + ".Crashlytics.Session.Application.Process"
          + "\022C\n\014organization\030\005 \001(\0132-.Crashlytics.Ses"
          + "sion.Application.Organization\032j\n\007Process"
          + "\022\014\n\004name\030\001 \001(\t\022\013\n\003pid\030\002 \002(\r\022\014\n\004path\030\003 \001("
          + "\t\022\033\n\023parent_process_name\030\004 \001(\t\022\031\n\021parent",
      "_process_id\030\005 \001(\r\032/\n\014Organization\022\017\n\007api"
          + "_key\030\001 \001(\t\022\016\n\006cls_id\030\002 \001(\t\032v\n\017OperatingS"
          + "ystem\022\'\n\010platform\030\001 \002(\0162\025.Crashlytics.Pl"
          + "atform\022\017\n\007version\030\002 \002(\t\022\025\n\rbuild_version"
          + "\030\003 \001(\t\022\022\n\njailbroken\030\004 \001(\010\032\217\003\n\006Device\022\022\n"
          + "\nidentifier\030\001 \001(\014\022\014\n\004udid\030\002 \001(\014\022\'\n\004arch\030"
          + "\003 \002(\0162\031.Crashlytics.Architecture\022\r\n\005mode"
          + "l\030\004 \001(\t\022\r\n\005cores\030\005 \001(\r\022\013\n\003ram\030\006 \001(\004\022\022\n\nd"
          + "isk_space\030\007 \001(\004\022\022\n\nuser_agent\030\010 \001(\t\022\020\n\010l"
          + "anguage\030\t \001(\t\022\021\n\tsimulator\030\n \001(\010\022;\n\013iden",
      "tifiers\030\013 \003(\0132&.Crashlytics.Session.Devi"
          + "ce.Identifier\022\r\n\005state\030\014 \001(\r\022\024\n\014manufact"
          + "urer\030\r \001(\t\022\023\n\013model_class\030\016 \001(\t\032K\n\nIdent"
          + "ifier\022.\n\003key\030\001 \002(\0162!.Crashlytics.DeviceI"
          + "dentifierType\022\r\n\005value\030\002 \002(\t\032\251\023\n\005Event\022\021"
          + "\n\ttimestamp\030\001 \002(\004\022\014\n\004type\030\002 \002(\t\022\026\n\016aggre"
          + "gation_id\030\007 \001(\t\0223\n\003app\030\003 \001(\0132&.Crashlyti"
          + "cs.Session.Event.Application\0226\n\002os\030\004 \001(\013"
          + "2*.Crashlytics.Session.Event.OperatingSy"
          + "stem\0221\n\006device\030\005 \001(\0132!.Crashlytics.Sessi",
      "on.Event.Device\022+\n\003log\030\006 \001(\0132\036.Crashlyti"
          + "cs.Session.Event.Log\032\204\014\n\013Application\022C\n\t"
          + "execution\030\001 \002(\01320.Crashlytics.Session.Ev"
          + "ent.Application.Execution\0227\n\021custom_attr"
          + "ibutes\030\002 \003(\0132\034.Crashlytics.CustomAttribu"
          + "te\022\022\n\nbackground\030\003 \001(\010\022\026\n\016ui_orientation"
          + "\030\004 \001(\r\032\312\n\n\tExecution\022H\n\007threads\030\001 \003(\01327."
          + "Crashlytics.Session.Event.Application.Ex"
          + "ecution.Thread\022M\n\texception\030\002 \001(\0132:.Cras"
          + "hlytics.Session.Event.Application.Execut",
      "ion.Exception\022G\n\006signal\030\003 \002(\01327.Crashlyt"
          + "ics.Session.Event.Application.Execution."
          + "Signal\022N\n\010binaries\030\004 \003(\0132<.Crashlytics.S"
          + "ession.Event.Application.Execution.Binar"
          + "yImage\032\215\004\n\006Thread\022\014\n\004name\030\001 \001(\t\022\022\n\nimpor"
          + "tance\030\002 \002(\r\022M\n\006frames\030\003 \003(\0132=.Crashlytic"
          + "s.Session.Event.Application.Execution.Th"
          + "read.Frame\022S\n\tregisters\030\004 \003(\0132@.Crashlyt"
          + "ics.Session.Event.Application.Execution."
          + "Thread.Register\022\026\n\016alternate_name\030\005 \001(\t\022",
      "\032\n\022objc_selector_name\030\006 \001(\t\032\337\001\n\005Frame\022\n\n"
          + "\002pc\030\001 \002(\004\022\016\n\006symbol\030\002 \001(\t\022\014\n\004file\030\003 \001(\t\022"
          + "\016\n\006offset\030\004 \001(\004\022\022\n\nimportance\030\005 \001(\r\022\027\n\017e"
          + "xpanded_symbol\030\006 \001(\t\022\025\n\rexpanded_file\030\007 "
          + "\001(\t\022\027\n\017expanded_offset\030\010 \001(\004\022\022\n\nproperti"
          + "es\030\t \001(\r\022\023\n\013line_number\030\n \001(\004\022\026\n\016address"
          + "_offset\030\013 \001(\004\032\'\n\010Register\022\014\n\004name\030\001 \002(\t\022"
          + "\r\n\005value\030\002 \002(\004\032\272\002\n\tException\022\014\n\004type\030\001 \001"
          + "(\t\022\014\n\004code\030\002 \001(\t\022\016\n\006reason\030\003 \001(\t\022M\n\006fram"
          + "es\030\004 \003(\0132=.Crashlytics.Session.Event.App",
      "lication.Execution.Thread.Frame\0227\n\021custo"
          + "m_attributes\030\005 \003(\0132\034.Crashlytics.CustomA"
          + "ttribute\022M\n\tcaused_by\030\006 \001(\0132:.Crashlytic"
          + "s.Session.Event.Application.Execution.Ex"
          + "ception\022\026\n\016overflow_count\030\007 \001(\r\022\022\n\nimpor"
          + "tance\030\010 \001(\r\0325\n\006Signal\022\014\n\004name\030\001 \002(\t\022\014\n\004c"
          + "ode\030\002 \002(\t\022\017\n\007address\030\003 \002(\004\032\206\001\n\013BinaryIma"
          + "ge\022\024\n\014base_address\030\001 \002(\004\022\014\n\004size\030\002 \002(\004\022\014"
          + "\n\004name\030\003 \002(\t\022\014\n\004uuid\030\004 \001(\014\022\'\n\004arch\030\005 \001(\016"
          + "2\031.Crashlytics.Architecture\022\016\n\006cls_id\030\006 ",
      "\001(\t\032\331\003\n\017OperatingSystem\022W\n\022network_inter"
          + "faces\030\001 \003(\0132;.Crashlytics.Session.Event."
          + "OperatingSystem.NetworkInterface\022;\n\tproc"
          + "esses\030\002 \003(\0132(.Crashlytics.Session.Applic"
          + "ation.Process\032\257\002\n\020NetworkInterface\022\014\n\004na"
          + "me\030\001 \001(\t\022\023\n\013description\030\002 \001(\t\022\014\n\004type\030\003 "
          + "\001(\t\022\017\n\007address\030\004 \001(\014\022[\n\013connections\030\005 \003("
          + "\0132F.Crashlytics.Session.Event.OperatingS"
          + "ystem.NetworkInterface.Connection\032|\n\nCon"
          + "nection\022\014\n\004port\030\001 \001(\r\022\022\n\nbytes_sent\030\002 \001(",
      "\004\022\026\n\016bytes_received\030\003 \001(\004\022\021\n\topened_at\030\004"
          + " \001(\004\022\021\n\tclosed_at\030\005 \001(\004\022\016\n\006status\030\006 \001(\r\032"
          + "\211\001\n\006Device\022\025\n\rbattery_level\030\001 \001(\002\022\030\n\020bat"
          + "tery_velocity\030\002 \001(\021\022\024\n\014proximity_on\030\003 \001("
          + "\010\022\023\n\013orientation\030\004 \001(\r\022\020\n\010ram_used\030\005 \001(\004"
          + "\022\021\n\tdisk_used\030\006 \001(\004\032+\n\003Log\022\017\n\007content\030\001 "
          + "\001(\t\022\023\n\013last_offset\030\002 \001(\r*\205\001\n\014Architectur"
          + "e\022\n\n\006X86_32\020\000\022\n\n\006X86_64\020\001\022\017\n\013ARM_UNKNOWN"
          + "\020\002\022\007\n\003PPC\020\003\022\t\n\005PPC64\020\004\022\t\n\005ARMV6\020\005\022\t\n\005ARM"
          + "V7\020\006\022\013\n\007UNKNOWN\020\007\022\n\n\006ARMV7S\020\010\022\t\n\005ARM64\020\t",
      "*~\n\010Platform\022\014\n\010MAC_OS_X\020\000\022\r\n\tIPHONE_OS\020"
          + "\001\022\024\n\020IPHONE_SIMULATOR\020\002\022\013\n\007ANDROID\020\003\022\013\n\007"
          + "WINDOWS\020\004\022\t\n\005LINUX\020\005\022\016\n\nBLACKBERRY\020\006\022\n\n\005"
          + "OTHER\020\350\007*\237\001\n\017FrameImportance\022\020\n\014SYMBOLIC"
          + "ATED\020\001\022\025\n\021IN_DEVELOPER_CODE\020\002\022\025\n\021IN_CRAS"
          + "HED_THREAD\020\004\022\030\n\024LIKELY_LEAD_TO_CRASH\020\010\022\020"
          + "\n\014IN_EXCEPTION\020\020\022\r\n\tALGORITHM\020 \022\021\n\rUSER_"
          + "DECLARED\020@*\316\002\n\017FrameProperties\022\021\n\rFRAME_"
          + "UNKNOWN\020\000\022\027\n\023FRAME_TYPE_COMPILED\020\001\022\021\n\rFR"
          + "AME_TYPE_VM\020\002\022\032\n\026FRAME_TYPE_INTERPRETED\020",
      "\004\022\022\n\016FRAME_TYPE_JIT\020\010\022\032\n\026FRAME_TYPE_SPEC"
          + "ULATIVE\020\020\022\026\n\022FRAME_TYPE_INLINED\020 \022\036\n\027FRA"
          + "ME_CONTEXT_DEVELOPER\020\200\200\200 \022\033\n\024FRAME_CONTE"
          + "XT_VENDOR\020\200\200\200@\022\035\n\025FRAME_CONTEXT_RUNTIME\020"
          + "\200\200\200\200\001\022\036\n\026FRAME_CONTEXT_PLATFORM\020\200\200\200\200\002\022\034\n"
          + "\024FRAME_CONTEXT_SYSTEM\020\200\200\200\200\004*P\n\rGenerator"
          + "Type\022\013\n\007IOS_SDK\020\001\022\r\n\tMACOS_SDK\020\002\022\017\n\013ANDR"
          + "OID_SDK\020\003\022\022\n\016JAVASCRIPT_SDK\020\004*\251\002\n\024Device"
          + "IdentifierType\022\024\n\020WIFI_MAC_ADDRESS\020\001\022\031\n\025"
          + "BLUETOOTH_MAC_ADDRESS\020\002\022\014\n\010IOS_UDID\0202\022\036\n",
      "\032IOS_ADVERTISING_IDENTIFIER\0203\022\031\n\025IOS_VEN"
          + "DOR_IDENTIFIER\0204\022\027\n\023TESTER_DEVICE_TOKEN\020"
          + "5\022\016\n\nANDROID_ID\020d\022\025\n\021ANDROID_DEVICE_ID\020e"
          + "\022\022\n\016ANDROID_SERIAL\020f\022\032\n\026ANDROID_ADVERTIS"
          + "ING_ID\020g\022\026\n\021MAC_HARDWARE_UUID\020\310\001\022\017\n\nMAC_"
          + "SERIAL\020\311\001*\203\001\n\013DeviceState\022\020\n\014IS_SIMULATO"
          + "R\020\001\022\016\n\nJAILBROKEN\020\002\022\025\n\021DEBUGGER_ATTACHED"
          + "\020\004\022\013\n\007BETA_OS\020\010\022\023\n\017VENDOR_INTERNAL\020\020\022\031\n\025"
          + "COMPROMISED_LIBRARIES\020 *[\n\021DeliveryMecha"
          + "nism\022\r\n\tDEVELOPER\020\001\022\021\n\rUSER_SIDELOAD\020\002\022\025",
      "\n\021TEST_DISTRIBUTION\020\003\022\r\n\tAPP_STORE\020\004*I\n\014"
          + "FrameDecoder\022\021\n\rSYMBOLICATION\020\001\022\021\n\rDEOBF"
          + "USCATION\020\002\022\023\n\017CACHE_HYDRATION\020\003B \n\036com.c"
          + "rashlytics.device.session"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            internal_static_Crashlytics_CustomAttribute_descriptor =
                getDescriptor().getMessageTypes().get(0);
            internal_static_Crashlytics_CustomAttribute_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                    internal_static_Crashlytics_CustomAttribute_descriptor,
                    new java.lang.String[] {
                      "Key", "Value",
                    },
                    com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
                        .class,
                    com.google.firebase.crashlytics.device.session.Crashlytics.CustomAttribute
                        .Builder.class);
            internal_static_Crashlytics_InternalData_descriptor =
                getDescriptor().getMessageTypes().get(1);
            internal_static_Crashlytics_InternalData_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                    internal_static_Crashlytics_InternalData_descriptor,
                    new java.lang.String[] {
                      "ProjectId",
                    },
                    com.google.firebase.crashlytics.device.session.Crashlytics.InternalData.class,
                    com.google.firebase.crashlytics.device.session.Crashlytics.InternalData.Builder
                        .class);
            internal_static_Crashlytics_Session_descriptor =
                getDescriptor().getMessageTypes().get(2);
            internal_static_Crashlytics_Session_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                    internal_static_Crashlytics_Session_descriptor,
                    new java.lang.String[] {
                      "Generator",
                      "Identifier",
                      "StartedAt",
                      "EndedAt",
                      "Crashed",
                      "Analyzer",
                      "GeneratorType",
                      "FrameDecoder",
                      "InternalData",
                      "User",
                      "App",
                      "Os",
                      "Device",
                      "Events",
                    },
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.class,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Builder
                        .class);
            internal_static_Crashlytics_Session_User_descriptor =
                internal_static_Crashlytics_Session_descriptor.getNestedTypes().get(0);
            internal_static_Crashlytics_Session_User_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                    internal_static_Crashlytics_Session_User_descriptor,
                    new java.lang.String[] {
                      "Identifier", "Name", "Email", "CustomAttributes",
                    },
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.User.class,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.User.Builder
                        .class);
            internal_static_Crashlytics_Session_Application_descriptor =
                internal_static_Crashlytics_Session_descriptor.getNestedTypes().get(1);
            internal_static_Crashlytics_Session_Application_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                    internal_static_Crashlytics_Session_Application_descriptor,
                    new java.lang.String[] {
                      "Identifier",
                      "Version",
                      "DisplayVersion",
                      "InstallationUuid",
                      "ClsId",
                      "DevelopmentPlatform",
                      "DevelopmentPlatformVersion",
                      "DeliveryMechanism",
                      "Process",
                      "Organization",
                    },
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                        .class,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                        .Builder.class);
            internal_static_Crashlytics_Session_Application_Process_descriptor =
                internal_static_Crashlytics_Session_Application_descriptor.getNestedTypes().get(0);
            internal_static_Crashlytics_Session_Application_Process_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                    internal_static_Crashlytics_Session_Application_Process_descriptor,
                    new java.lang.String[] {
                      "Name", "Pid", "Path", "ParentProcessName", "ParentProcessId",
                    },
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                        .Process.class,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                        .Process.Builder.class);
            internal_static_Crashlytics_Session_Application_Organization_descriptor =
                internal_static_Crashlytics_Session_Application_descriptor.getNestedTypes().get(1);
            internal_static_Crashlytics_Session_Application_Organization_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                    internal_static_Crashlytics_Session_Application_Organization_descriptor,
                    new java.lang.String[] {
                      "ApiKey", "ClsId",
                    },
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                        .Organization.class,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Application
                        .Organization.Builder.class);
            internal_static_Crashlytics_Session_OperatingSystem_descriptor =
                internal_static_Crashlytics_Session_descriptor.getNestedTypes().get(2);
            internal_static_Crashlytics_Session_OperatingSystem_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                    internal_static_Crashlytics_Session_OperatingSystem_descriptor,
                    new java.lang.String[] {
                      "Platform", "Version", "BuildVersion", "Jailbroken",
                    },
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session
                        .OperatingSystem.class,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session
                        .OperatingSystem.Builder.class);
            internal_static_Crashlytics_Session_Device_descriptor =
                internal_static_Crashlytics_Session_descriptor.getNestedTypes().get(3);
            internal_static_Crashlytics_Session_Device_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                    internal_static_Crashlytics_Session_Device_descriptor,
                    new java.lang.String[] {
                      "Identifier",
                      "Udid",
                      "Arch",
                      "Model",
                      "Cores",
                      "Ram",
                      "DiskSpace",
                      "UserAgent",
                      "Language",
                      "Simulator",
                      "Identifiers",
                      "State",
                      "Manufacturer",
                      "ModelClass",
                    },
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device.class,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                        .Builder.class);
            internal_static_Crashlytics_Session_Device_Identifier_descriptor =
                internal_static_Crashlytics_Session_Device_descriptor.getNestedTypes().get(0);
            internal_static_Crashlytics_Session_Device_Identifier_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                    internal_static_Crashlytics_Session_Device_Identifier_descriptor,
                    new java.lang.String[] {
                      "Key", "Value",
                    },
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                        .Identifier.class,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Device
                        .Identifier.Builder.class);
            internal_static_Crashlytics_Session_Event_descriptor =
                internal_static_Crashlytics_Session_descriptor.getNestedTypes().get(4);
            internal_static_Crashlytics_Session_Event_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                    internal_static_Crashlytics_Session_Event_descriptor,
                    new java.lang.String[] {
                      "Timestamp", "Type", "AggregationId", "App", "Os", "Device", "Log",
                    },
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.class,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Builder
                        .class);
            internal_static_Crashlytics_Session_Event_Application_descriptor =
                internal_static_Crashlytics_Session_Event_descriptor.getNestedTypes().get(0);
            internal_static_Crashlytics_Session_Event_Application_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                    internal_static_Crashlytics_Session_Event_Application_descriptor,
                    new java.lang.String[] {
                      "Execution", "CustomAttributes", "Background", "UiOrientation",
                    },
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.class,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Builder.class);
            internal_static_Crashlytics_Session_Event_Application_Execution_descriptor =
                internal_static_Crashlytics_Session_Event_Application_descriptor
                    .getNestedTypes()
                    .get(0);
            internal_static_Crashlytics_Session_Event_Application_Execution_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                    internal_static_Crashlytics_Session_Event_Application_Execution_descriptor,
                    new java.lang.String[] {
                      "Threads", "Exception", "Signal", "Binaries",
                    },
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.class,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Builder.class);
            internal_static_Crashlytics_Session_Event_Application_Execution_Thread_descriptor =
                internal_static_Crashlytics_Session_Event_Application_Execution_descriptor
                    .getNestedTypes()
                    .get(0);
            internal_static_Crashlytics_Session_Event_Application_Execution_Thread_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                    internal_static_Crashlytics_Session_Event_Application_Execution_Thread_descriptor,
                    new java.lang.String[] {
                      "Name",
                      "Importance",
                      "Frames",
                      "Registers",
                      "AlternateName",
                      "ObjcSelectorName",
                    },
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Thread.class,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Thread.Builder.class);
            internal_static_Crashlytics_Session_Event_Application_Execution_Thread_Frame_descriptor =
                internal_static_Crashlytics_Session_Event_Application_Execution_Thread_descriptor
                    .getNestedTypes()
                    .get(0);
            internal_static_Crashlytics_Session_Event_Application_Execution_Thread_Frame_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                    internal_static_Crashlytics_Session_Event_Application_Execution_Thread_Frame_descriptor,
                    new java.lang.String[] {
                      "Pc",
                      "Symbol",
                      "File",
                      "Offset",
                      "Importance",
                      "ExpandedSymbol",
                      "ExpandedFile",
                      "ExpandedOffset",
                      "Properties",
                      "LineNumber",
                      "AddressOffset",
                    },
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Thread.Frame.class,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Thread.Frame.Builder.class);
            internal_static_Crashlytics_Session_Event_Application_Execution_Thread_Register_descriptor =
                internal_static_Crashlytics_Session_Event_Application_Execution_Thread_descriptor
                    .getNestedTypes()
                    .get(1);
            internal_static_Crashlytics_Session_Event_Application_Execution_Thread_Register_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                    internal_static_Crashlytics_Session_Event_Application_Execution_Thread_Register_descriptor,
                    new java.lang.String[] {
                      "Name", "Value",
                    },
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Thread.Register.class,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Thread.Register.Builder.class);
            internal_static_Crashlytics_Session_Event_Application_Execution_Exception_descriptor =
                internal_static_Crashlytics_Session_Event_Application_Execution_descriptor
                    .getNestedTypes()
                    .get(1);
            internal_static_Crashlytics_Session_Event_Application_Execution_Exception_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                    internal_static_Crashlytics_Session_Event_Application_Execution_Exception_descriptor,
                    new java.lang.String[] {
                      "Type",
                      "Code",
                      "Reason",
                      "Frames",
                      "CustomAttributes",
                      "CausedBy",
                      "OverflowCount",
                      "Importance",
                    },
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Exception.class,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Exception.Builder.class);
            internal_static_Crashlytics_Session_Event_Application_Execution_Signal_descriptor =
                internal_static_Crashlytics_Session_Event_Application_Execution_descriptor
                    .getNestedTypes()
                    .get(2);
            internal_static_Crashlytics_Session_Event_Application_Execution_Signal_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                    internal_static_Crashlytics_Session_Event_Application_Execution_Signal_descriptor,
                    new java.lang.String[] {
                      "Name", "Code", "Address",
                    },
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Signal.class,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.Signal.Builder.class);
            internal_static_Crashlytics_Session_Event_Application_Execution_BinaryImage_descriptor =
                internal_static_Crashlytics_Session_Event_Application_Execution_descriptor
                    .getNestedTypes()
                    .get(3);
            internal_static_Crashlytics_Session_Event_Application_Execution_BinaryImage_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                    internal_static_Crashlytics_Session_Event_Application_Execution_BinaryImage_descriptor,
                    new java.lang.String[] {
                      "BaseAddress", "Size", "Name", "Uuid", "Arch", "ClsId",
                    },
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.BinaryImage.class,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .Application.Execution.BinaryImage.Builder.class);
            internal_static_Crashlytics_Session_Event_OperatingSystem_descriptor =
                internal_static_Crashlytics_Session_Event_descriptor.getNestedTypes().get(1);
            internal_static_Crashlytics_Session_Event_OperatingSystem_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                    internal_static_Crashlytics_Session_Event_OperatingSystem_descriptor,
                    new java.lang.String[] {
                      "NetworkInterfaces", "Processes",
                    },
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.class,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.Builder.class);
            internal_static_Crashlytics_Session_Event_OperatingSystem_NetworkInterface_descriptor =
                internal_static_Crashlytics_Session_Event_OperatingSystem_descriptor
                    .getNestedTypes()
                    .get(0);
            internal_static_Crashlytics_Session_Event_OperatingSystem_NetworkInterface_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                    internal_static_Crashlytics_Session_Event_OperatingSystem_NetworkInterface_descriptor,
                    new java.lang.String[] {
                      "Name", "Description", "Type", "Address", "Connections",
                    },
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.NetworkInterface.class,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.NetworkInterface.Builder.class);
            internal_static_Crashlytics_Session_Event_OperatingSystem_NetworkInterface_Connection_descriptor =
                internal_static_Crashlytics_Session_Event_OperatingSystem_NetworkInterface_descriptor
                    .getNestedTypes()
                    .get(0);
            internal_static_Crashlytics_Session_Event_OperatingSystem_NetworkInterface_Connection_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                    internal_static_Crashlytics_Session_Event_OperatingSystem_NetworkInterface_Connection_descriptor,
                    new java.lang.String[] {
                      "Port", "BytesSent", "BytesReceived", "OpenedAt", "ClosedAt", "Status",
                    },
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.NetworkInterface.Connection.class,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event
                        .OperatingSystem.NetworkInterface.Connection.Builder.class);
            internal_static_Crashlytics_Session_Event_Device_descriptor =
                internal_static_Crashlytics_Session_Event_descriptor.getNestedTypes().get(2);
            internal_static_Crashlytics_Session_Event_Device_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                    internal_static_Crashlytics_Session_Event_Device_descriptor,
                    new java.lang.String[] {
                      "BatteryLevel",
                      "BatteryVelocity",
                      "ProximityOn",
                      "Orientation",
                      "RamUsed",
                      "DiskUsed",
                    },
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device
                        .class,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Device
                        .Builder.class);
            internal_static_Crashlytics_Session_Event_Log_descriptor =
                internal_static_Crashlytics_Session_Event_descriptor.getNestedTypes().get(3);
            internal_static_Crashlytics_Session_Event_Log_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                    internal_static_Crashlytics_Session_Event_Log_descriptor,
                    new java.lang.String[] {
                      "Content", "LastOffset",
                    },
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log
                        .class,
                    com.google.firebase.crashlytics.device.session.Crashlytics.Session.Event.Log
                        .Builder.class);
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
        descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] {}, assigner);
  }

  // @@protoc_insertion_point(outer_class_scope)
}
